UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
UInteractiveToolManager Class Reference

#include <InteractiveToolManager.h>

+ Inheritance diagram for UInteractiveToolManager:

Public Member Functions

bool IsActive () const
 
virtual INTERACTIVETOOLSFRAMEWORK_API void RegisterToolType (const FString &Identifier, UInteractiveToolBuilder *Builder)
 
virtual INTERACTIVETOOLSFRAMEWORK_API void UnregisterToolType (const FString &Identifier)
 
virtual INTERACTIVETOOLSFRAMEWORK_API bool SelectActiveToolType (EToolSide Side, const FString &Identifier)
 
virtual INTERACTIVETOOLSFRAMEWORK_API const FString & GetActiveToolType (EToolSide Side) const
 
virtual INTERACTIVETOOLSFRAMEWORK_API bool CanActivateTool (EToolSide eSide, FString Identifier)
 
virtual INTERACTIVETOOLSFRAMEWORK_API bool ActivateTool (EToolSide Side)
 
virtual INTERACTIVETOOLSFRAMEWORK_API bool HasActiveTool (EToolSide Side) const
 
virtual EToolManagerToolSwitchMode GetToolSwitchMode () const
 
virtual void SetToolSwitchMode (EToolManagerToolSwitchMode ToolSwitchModeIn)
 
virtual INTERACTIVETOOLSFRAMEWORK_API bool HasAnyActiveTool () const
 
virtual INTERACTIVETOOLSFRAMEWORK_API UInteractiveToolGetActiveTool (EToolSide Side)
 
virtual INTERACTIVETOOLSFRAMEWORK_API UInteractiveToolBuilderGetActiveToolBuilder (EToolSide Side)
 
virtual INTERACTIVETOOLSFRAMEWORK_API FString GetActiveToolName (EToolSide Side)
 
virtual INTERACTIVETOOLSFRAMEWORK_API bool CanAcceptActiveTool (EToolSide Side)
 
virtual INTERACTIVETOOLSFRAMEWORK_API bool CanCancelActiveTool (EToolSide Side)
 
virtual INTERACTIVETOOLSFRAMEWORK_API void DeactivateTool (EToolSide Side, EToolShutdownType ShutdownType)
 
INTERACTIVETOOLSFRAMEWORK_API EToolShutdownType GetPreferredShutdownType (EToolSide Side, EToolShutdownReason ShutdownReason=EToolShutdownReason::Unspecified)
 
virtual INTERACTIVETOOLSFRAMEWORK_API void ConfigureChangeTrackingMode (EToolChangeTrackingMode ChangeMode)
 
virtual INTERACTIVETOOLSFRAMEWORK_API EToolChangeTrackingMode GetChangeTrackingMode () const
 
virtual INTERACTIVETOOLSFRAMEWORK_API void DisplayMessage (const FText &Message, EToolMessageLevel Level)
 
virtual INTERACTIVETOOLSFRAMEWORK_API void PostInvalidation ()
 
virtual INTERACTIVETOOLSFRAMEWORK_API void BeginUndoTransaction (const FText &Description)
 
virtual INTERACTIVETOOLSFRAMEWORK_API void EndUndoTransaction ()
 
virtual INTERACTIVETOOLSFRAMEWORK_API void EmitObjectChange (UObject *TargetObject, TUniquePtr< FToolCommandChange > Change, const FText &Description)
 
virtual INTERACTIVETOOLSFRAMEWORK_API bool RequestSelectionChange (const FSelectedObjectsChangeList &SelectionChange)
 
virtual INTERACTIVETOOLSFRAMEWORK_API void Tick (float DeltaTime)
 
virtual INTERACTIVETOOLSFRAMEWORK_API void Render (IToolsContextRenderAPI *RenderAPI)
 
virtual INTERACTIVETOOLSFRAMEWORK_API void DrawHUD (FCanvas *Canvas, IToolsContextRenderAPI *RenderAPI)
 
virtual INTERACTIVETOOLSFRAMEWORK_API bool PostActiveToolShutdownRequest (UInteractiveTool *Tool, EToolShutdownType ShutdownType, bool bShowUnexpectedShutdownMessage=false, const FText &UnexpectedShutdownMessage=FText())
 
 DECLARE_DELEGATE_RetVal_ThreeParams (bool, FOnToolShutdownRequest, UInteractiveToolManager *, UInteractiveTool *, EToolShutdownType)
 
 DECLARE_MULTICAST_DELEGATE_FourParams (FOnToolUnexpectedShutdownMessage, UInteractiveToolManager *, UInteractiveTool *, const FText &Message, bool bWasDuringToolSetup)
 
virtual IToolsContextQueriesAPIGetContextQueriesAPI ()
 
virtual IToolsContextTransactionsAPIGetContextTransactionsAPI () final
 
INTERACTIVETOOLSFRAMEWORK_API UInteractiveGizmoManagerGetPairedGizmoManager ()
 
INTERACTIVETOOLSFRAMEWORK_API UContextObjectStoreGetContextObjectStore () const
 
 DECLARE_MULTICAST_DELEGATE_TwoParams (FToolManagerToolStartedSignature, UInteractiveToolManager *, UInteractiveTool *)
 
 DECLARE_MULTICAST_DELEGATE_FiveParams (FToolManagerToolPostBuildSignature, UInteractiveToolManager *, EToolSide, UInteractiveTool *, UInteractiveToolBuilder *, const FToolBuilderState &)
 
 DECLARE_MULTICAST_DELEGATE_ThreeParams (FToolManagerToolPostSetupSignature, UInteractiveToolManager *, EToolSide, UInteractiveTool *)
 
 DECLARE_MULTICAST_DELEGATE_TwoParams (FToolManagerToolEndedSignature, UInteractiveToolManager *, UInteractiveTool *)
 
 DECLARE_MULTICAST_DELEGATE_ThreeParams (FToolManagerToolCancelledSignature, UInteractiveToolManager *, UInteractiveTool *, EToolShutdownType)
 
- Public Member Functions inherited from UObject
COREUOBJECT_API UObject ()
 
COREUOBJECT_API UObject (const FObjectInitializer &ObjectInitializer)
 
COREUOBJECT_API UObject (EStaticConstructor, EObjectFlags InFlags)
 
COREUOBJECT_API UObject (FVTableHelper &Helper)
 
COREUOBJECT_API UObjectCreateDefaultSubobject (FName SubobjectFName, UClass *ReturnType, UClass *ClassToCreateByDefault, bool bIsRequired, bool bIsTransient)
 
template<class TReturnType >
TReturnTypeCreateEditorOnlyDefaultSubobject (FName SubobjectName, bool bTransient=false)
 
template<class TReturnType >
TReturnTypeCreateDefaultSubobject (FName SubobjectName, bool bTransient=false)
 
template<class TReturnType , class TClassToConstructByDefault >
TReturnTypeCreateDefaultSubobject (FName SubobjectName, bool bTransient=false)
 
template<class TReturnType >
TReturnTypeCreateOptionalDefaultSubobject (FName SubobjectName, bool bTransient=false)
 
template<class TReturnType , class TClassToConstructByDefault >
TReturnTypeCreateOptionalDefaultSubobject (FName SubobjectName, bool bTransient=false)
 
COREUOBJECT_API void GetDefaultSubobjects (TArray< UObject * > &OutDefaultSubobjects)
 
COREUOBJECT_API UObjectGetDefaultSubobjectByName (FName ToFind)
 
virtual COREUOBJECT_API void PostInitProperties ()
 
virtual COREUOBJECT_API void PostReinitProperties ()
 
virtual void PostCDOContruct ()
 
virtual COREUOBJECT_API void PreSaveRoot (FObjectPreSaveRootContext ObjectSaveContext)
 
virtual COREUOBJECT_API void PostSaveRoot (FObjectPostSaveRootContext ObjectSaveContext)
 
virtual COREUOBJECT_API void PreSave (FObjectPreSaveContext SaveContext)
 
virtual COREUOBJECT_API void CollectSaveOverrides (FObjectCollectSaveOverridesContext SaveContext)
 
UE_FORCEINLINE_HINT bool Modify (bool bAlwaysMarkDirty=true)
 
UE_FORCEINLINE_HINT bool IsCapturingAsRootObjectForTransaction () const
 
virtual bool ResolveSubobject (const TCHAR *SubObjectPath, UObject *&OutObject, bool bLoadIfExists)
 
virtual bool IsReadyForAsyncPostLoad () const
 
virtual COREUOBJECT_API void PostLoad ()
 
virtual COREUOBJECT_API void PostLoadSubobjects (FObjectInstancingGraph *OuterInstanceGraph)
 
virtual COREUOBJECT_API void BeginDestroy ()
 
virtual bool IsReadyForFinishDestroy ()
 
virtual COREUOBJECT_API void FinishDestroy ()
 
virtual COREUOBJECT_API void Serialize (FArchive &Ar)
 
virtual COREUOBJECT_API void Serialize (FStructuredArchive::FRecord Record)
 
virtual void ShutdownAfterError ()
 
virtual void PostInterpChange (FProperty *PropertyThatChanged)
 
virtual COREUOBJECT_API void PostRename (UObject *OldOuter, const FName OldName)
 
virtual void PreDuplicate (FObjectDuplicationParameters &DupParams)
 
virtual void PostDuplicate (bool bDuplicateForPIE)
 
virtual void PostDuplicate (EDuplicateMode::Type DuplicateMode)
 
virtual COREUOBJECT_API bool NeedsLoadForClient () const
 
virtual COREUOBJECT_API bool NeedsLoadForServer () const
 
virtual COREUOBJECT_API bool NeedsLoadForTargetPlatform (const class ITargetPlatform *TargetPlatform) const
 
virtual bool NeedsLoadForEditorGame () const
 
virtual bool IsEditorOnly () const
 
virtual bool HasNonEditorOnlyReferences () const
 
virtual bool IsPostLoadThreadSafe () const
 
virtual COREUOBJECT_API bool IsDestructionThreadSafe () const
 
virtual COREUOBJECT_API void GetPreloadDependencies (TArray< UObject * > &OutDeps)
 
virtual void GetPrestreamPackages (TArray< UObject * > &OutPrestream)
 
virtual void ExportCustomProperties (FOutputDevice &Out, uint32 Indent)
 
virtual void ImportCustomProperties (const TCHAR *SourceText, FFeedbackContext *Warn)
 
virtual void PostEditImport ()
 
virtual void PostReloadConfig (class FProperty *PropertyThatWasLoaded)
 
virtual COREUOBJECT_API bool Rename (const TCHAR *NewName=nullptr, UObject *NewOuter=nullptr, ERenameFlags Flags=REN_None)
 
virtual FString GetDesc ()
 
COREUOBJECT_API UScriptStructGetSparseClassDataStruct () const
 
virtual bool GetNativePropertyValues (TMap< FString, FString > &out_PropertyValues, uint32 ExportFlags=0) const
 
virtual COREUOBJECT_API void GetResourceSizeEx (FResourceSizeEx &CumulativeResourceSize)
 
SIZE_T GetResourceSizeBytes (EResourceSizeMode::Type Mode)
 
virtual FName GetExporterName (void)
 
COREUOBJECT_API void CallAddReferencedObjects (FReferenceCollector &Collector)
 
virtual FRestoreForUObjectOverwriteGetRestoreForUObjectOverwrite ()
 
virtual bool AreNativePropertiesIdenticalTo (UObject *Other) const
 
virtual COREUOBJECT_API void GetAssetRegistryTags (FAssetRegistryTagsContext Context) const
 
virtual COREUOBJECT_API void GetAssetRegistryTags (TArray< FAssetRegistryTag > &OutTags) const
 
COREUOBJECT_API void GetAssetRegistryTags (FAssetData &Out) const
 
COREUOBJECT_API void GetAssetRegistryTags (FAssetRegistryTagsContext Context, FAssetData &Out) const
 
virtual COREUOBJECT_API bool IsAsset () const
 
virtual COREUOBJECT_API FPrimaryAssetId GetPrimaryAssetId () const
 
virtual COREUOBJECT_API bool IsLocalizedResource () const
 
virtual COREUOBJECT_API bool IsSafeForRootSet () const
 
virtual COREUOBJECT_API void TagSubobjects (EObjectFlags NewFlags)
 
virtual COREUOBJECT_API void GetLifetimeReplicatedProps (TArray< class FLifetimeProperty > &OutLifetimeProps) const
 
virtual COREUOBJECT_API void GetReplicatedCustomConditionState (FCustomPropertyConditionState &OutActiveState) const
 
virtual COREUOBJECT_API void RegisterReplicationFragments (UE::Net::FFragmentRegistrationContext &Context, UE::Net::EFragmentRegistrationFlags RegistrationFlags)
 
virtual COREUOBJECT_API bool IsNameStableForNetworking () const
 
virtual COREUOBJECT_API bool IsFullNameStableForNetworking () const
 
virtual COREUOBJECT_API bool IsSupportedForNetworking () const
 
virtual void GetSubobjectsWithStableNamesForNetworking (TArray< UObject * > &ObjList)
 
virtual COREUOBJECT_API void PreNetReceive ()
 
virtual COREUOBJECT_API void PostNetReceive ()
 
virtual void PostRepNotifies ()
 
virtual COREUOBJECT_API void PreDestroyFromReplication ()
 
COREUOBJECT_API bool IsSelected () const
 
COREUOBJECT_API void SerializeScriptProperties (FArchive &Ar) const
 
COREUOBJECT_API void SerializeScriptProperties (FStructuredArchive::FSlot Slot) const
 
COREUOBJECT_API void ReinitializeProperties (UObject *SourceObject=NULL, struct FObjectInstancingGraph *InstanceGraph=NULL)
 
COREUOBJECT_API FString GetDetailedInfo () const
 
COREUOBJECT_API bool ConditionalBeginDestroy ()
 
COREUOBJECT_API bool ConditionalFinishDestroy ()
 
COREUOBJECT_API void ConditionalPostLoad ()
 
COREUOBJECT_API void ConditionalPreload ()
 
COREUOBJECT_API void ConditionalPostLoadSubobjects (struct FObjectInstancingGraph *OuterInstanceGraph=NULL)
 
bool IsBasedOnArchetype (const UObject *const SomeObject) const
 
COREUOBJECT_API UFunctionFindFunction (FName InName) const
 
COREUOBJECT_API UFunctionFindFunctionChecked (FName InName) const
 
virtual COREUOBJECT_API void BuildSubobjectMapping (UObject *OtherObject, TMap< UObject *, UObject * > &ObjectMapping) const
 
COREUOBJECT_API void CollectDefaultSubobjects (TArray< UObject * > &OutDefaultSubobjects, bool bIncludeNestedSubobjects=false) const
 
COREUOBJECT_API bool CheckDefaultSubobjects (bool bForceCheck=false) const
 
COREUOBJECT_API void SaveConfig (uint64 RequiredPropertyFlags=CPF_Config, const TCHAR *Filename=nullptr, FConfigCacheIni *Config=GConfig, bool bAllowCopyToDefaultObject=true)
 
COREUOBJECT_API void SaveConfig (const FSaveConfigContext &Context)
 
COREUOBJECT_API void UpdateDefaultConfigFile (const FString &SpecificFileLocation="")
 
COREUOBJECT_API bool TryUpdateDefaultConfigFile (const FString &SpecificFileLocation="", bool bWarnIfFail=true)
 
COREUOBJECT_API void UpdateGlobalUserConfigFile ()
 
COREUOBJECT_API void UpdateProjectUserConfigFile ()
 
COREUOBJECT_API void UpdateSinglePropertyInConfigFile (const FProperty *InProperty, const FString &InConfigIniName)
 
COREUOBJECT_API FString GetDefaultConfigFilename () const
 
COREUOBJECT_API FString GetGlobalUserConfigFilename () const
 
COREUOBJECT_API FString GetProjectUserConfigFilename () const
 
virtual const TCHARGetConfigOverridePlatform () const
 
virtual void OverrideConfigSection (FString &SectionName)
 
virtual void OverridePerObjectConfigSection (FString &SectionName)
 
COREUOBJECT_API void LoadConfig (UClass *ConfigClass=nullptr, const TCHAR *Filename=nullptr, uint32 PropagationFlags=UE::LCPF_None, class FProperty *PropertyToLoad=nullptr, TArray< UE::ConfigAccessTracking::FConfigAccessData > *OutAccessedKeys=nullptr)
 
COREUOBJECT_API void ReloadConfig (UClass *ConfigClass=NULL, const TCHAR *Filename=NULL, uint32 PropagationFlags=UE::LCPF_None, class FProperty *PropertyToLoad=NULL)
 
COREUOBJECT_API void ParseParms (const TCHAR *Parms)
 
COREUOBJECT_API void OutputReferencers (FOutputDevice &Ar, FReferencerInformationList *Referencers=NULL)
 
COREUOBJECT_API void RetrieveReferencers (TArray< FReferencerInformation > *OutInternalReferencers, TArray< FReferencerInformation > *OutExternalReferencers)
 
COREUOBJECT_API void SetLinker (FLinkerLoad *LinkerLoad, int32 LinkerIndex, bool bShouldDetachExisting=true, bool bSilenceLogs=false)
 
COREUOBJECT_API UObjectGetArchetype () const
 
COREUOBJECT_API void GetArchetypeInstances (TArray< UObject * > &Instances)
 
COREUOBJECT_API void InstanceSubobjectTemplates (struct FObjectInstancingGraph *InstanceGraph=NULL)
 
template<class T >
bool Implements () const
 
virtual COREUOBJECT_API void ProcessEvent (UFunction *Function, void *Parms)
 
virtual int32 GetFunctionCallspace (UFunction *Function, FFrame *Stack)
 
virtual bool CallRemoteFunction (UFunction *Function, void *Parms, struct FOutParmRec *OutParms, FFrame *Stack)
 
COREUOBJECT_API bool CallFunctionByNameWithArguments (const TCHAR *Cmd, FOutputDevice &Ar, UObject *Executor, bool bForceCallWithNonExec=false)
 
COREUOBJECT_API void CallFunction (FFrame &Stack, RESULT_DECL, UFunction *Function)
 
 DECLARE_FUNCTION (ProcessInternal)
 
virtual bool ProcessConsoleExec (const TCHAR *Cmd, FOutputDevice &Ar, UObject *Executor)
 
COREUOBJECT_API void SkipFunction (FFrame &Stack, RESULT_DECL, UFunction *Function)
 
virtual UClassRegenerateClass (UClass *ClassToRegenerate, UObject *PreviousCDO)
 
COREUOBJECT_API bool IsInBlueprint () const
 
COREUOBJECT_API void DestroyNonNativeProperties ()
 
virtual void MarkAsEditorOnlySubobject ()
 
COREUOBJECT_API void AbortInsideMemberFunction () const
 
 DECLARE_FUNCTION (execUndefined)
 
 DECLARE_FUNCTION (execLocalVariable)
 
 DECLARE_FUNCTION (execInstanceVariable)
 
 DECLARE_FUNCTION (execDefaultVariable)
 
 DECLARE_FUNCTION (execLocalOutVariable)
 
 DECLARE_FUNCTION (execInterfaceVariable)
 
 DECLARE_FUNCTION (execClassSparseDataVariable)
 
 DECLARE_FUNCTION (execInterfaceContext)
 
 DECLARE_FUNCTION (execArrayElement)
 
 DECLARE_FUNCTION (execBoolVariable)
 
 DECLARE_FUNCTION (execClassDefaultVariable)
 
 DECLARE_FUNCTION (execEndFunctionParms)
 
 DECLARE_FUNCTION (execNothing)
 
 DECLARE_FUNCTION (execNothingInt32)
 
 DECLARE_FUNCTION (execNothingOp4a)
 
 DECLARE_FUNCTION (execBreakpoint)
 
 DECLARE_FUNCTION (execTracepoint)
 
 DECLARE_FUNCTION (execWireTracepoint)
 
 DECLARE_FUNCTION (execInstrumentation)
 
 DECLARE_FUNCTION (execEndOfScript)
 
 DECLARE_FUNCTION (execReturnNothing)
 
 DECLARE_FUNCTION (execEmptyParmValue)
 
 DECLARE_FUNCTION (execJump)
 
 DECLARE_FUNCTION (execJumpIfNot)
 
 DECLARE_FUNCTION (execAssert)
 
 DECLARE_FUNCTION (execPushExecutionFlow)
 
 DECLARE_FUNCTION (execPopExecutionFlow)
 
 DECLARE_FUNCTION (execComputedJump)
 
 DECLARE_FUNCTION (execPopExecutionFlowIfNot)
 
 DECLARE_FUNCTION (execLet)
 
 DECLARE_FUNCTION (execLetObj)
 
 DECLARE_FUNCTION (execLetWeakObjPtr)
 
 DECLARE_FUNCTION (execLetBool)
 
 DECLARE_FUNCTION (execLetDelegate)
 
 DECLARE_FUNCTION (execLetMulticastDelegate)
 
 DECLARE_FUNCTION (execAddMulticastDelegate)
 
 DECLARE_FUNCTION (execClearMulticastDelegate)
 
 DECLARE_FUNCTION (execEatReturnValue)
 
 DECLARE_FUNCTION (execRemoveMulticastDelegate)
 
 DECLARE_FUNCTION (execSelf)
 
 DECLARE_FUNCTION (execContext)
 
 DECLARE_FUNCTION (execContext_FailSilent)
 
 DECLARE_FUNCTION (execStructMemberContext)
 
 DECLARE_FUNCTION (execVirtualFunction)
 
 DECLARE_FUNCTION (execFinalFunction)
 
 DECLARE_FUNCTION (execLocalVirtualFunction)
 
 DECLARE_FUNCTION (execLocalFinalFunction)
 
 DECLARE_FUNCTION (execStructCmpEq)
 
 DECLARE_FUNCTION (execStructCmpNe)
 
 DECLARE_FUNCTION (execStructMember)
 
 DECLARE_FUNCTION (execEqualEqual_DelegateDelegate)
 
 DECLARE_FUNCTION (execNotEqual_DelegateDelegate)
 
 DECLARE_FUNCTION (execEqualEqual_DelegateFunction)
 
 DECLARE_FUNCTION (execNotEqual_DelegateFunction)
 
 DECLARE_FUNCTION (execIntConst)
 
 DECLARE_FUNCTION (execInt64Const)
 
 DECLARE_FUNCTION (execUInt64Const)
 
 DECLARE_FUNCTION (execSkipOffsetConst)
 
 DECLARE_FUNCTION (execFloatConst)
 
 DECLARE_FUNCTION (execDoubleConst)
 
 DECLARE_FUNCTION (execStringConst)
 
 DECLARE_FUNCTION (execUnicodeStringConst)
 
 DECLARE_FUNCTION (execTextConst)
 
 DECLARE_FUNCTION (execPropertyConst)
 
 DECLARE_FUNCTION (execObjectConst)
 
 DECLARE_FUNCTION (execSoftObjectConst)
 
 DECLARE_FUNCTION (execFieldPathConst)
 
 DECLARE_FUNCTION (execInstanceDelegate)
 
 DECLARE_FUNCTION (execNameConst)
 
 DECLARE_FUNCTION (execByteConst)
 
 DECLARE_FUNCTION (execIntZero)
 
 DECLARE_FUNCTION (execIntOne)
 
 DECLARE_FUNCTION (execTrue)
 
 DECLARE_FUNCTION (execFalse)
 
 DECLARE_FUNCTION (execNoObject)
 
 DECLARE_FUNCTION (execNullInterface)
 
 DECLARE_FUNCTION (execIntConstByte)
 
 DECLARE_FUNCTION (execRotationConst)
 
 DECLARE_FUNCTION (execVectorConst)
 
 DECLARE_FUNCTION (execVector3fConst)
 
 DECLARE_FUNCTION (execTransformConst)
 
 DECLARE_FUNCTION (execStructConst)
 
 DECLARE_FUNCTION (execSetArray)
 
 DECLARE_FUNCTION (execSetSet)
 
 DECLARE_FUNCTION (execSetMap)
 
 DECLARE_FUNCTION (execArrayConst)
 
 DECLARE_FUNCTION (execSetConst)
 
 DECLARE_FUNCTION (execMapConst)
 
 DECLARE_FUNCTION (execBitFieldConst)
 
 DECLARE_FUNCTION (execNew)
 
 DECLARE_FUNCTION (execClassContext)
 
 DECLARE_FUNCTION (execNativeParm)
 
 DECLARE_FUNCTION (execCast)
 
 DECLARE_FUNCTION (execDynamicCast)
 
 DECLARE_FUNCTION (execMetaCast)
 
 DECLARE_FUNCTION (execInterfaceCast)
 
 DECLARE_FUNCTION (execDoubleToFloatCast)
 
 DECLARE_FUNCTION (execFloatToDoubleCast)
 
 DECLARE_FUNCTION (execObjectToBool)
 
 DECLARE_FUNCTION (execInterfaceToBool)
 
 DECLARE_FUNCTION (execObjectToInterface)
 
 DECLARE_FUNCTION (execInterfaceToInterface)
 
 DECLARE_FUNCTION (execInterfaceToObject)
 
 DECLARE_FUNCTION (execGetDynArrayElement)
 
 DECLARE_FUNCTION (execSetDynArrayElement)
 
 DECLARE_FUNCTION (execGetDynArrayLength)
 
 DECLARE_FUNCTION (execSetDynArrayLength)
 
 DECLARE_FUNCTION (execDynArrayInsert)
 
 DECLARE_FUNCTION (execDynArrayRemove)
 
 DECLARE_FUNCTION (execDynArrayFind)
 
 DECLARE_FUNCTION (execDynArrayFindStruct)
 
 DECLARE_FUNCTION (execDynArrayAdd)
 
 DECLARE_FUNCTION (execDynArrayAddItem)
 
 DECLARE_FUNCTION (execDynArrayInsertItem)
 
 DECLARE_FUNCTION (execDynArrayRemoveItem)
 
 DECLARE_FUNCTION (execDynArraySort)
 
 DECLARE_FUNCTION (execBindDelegate)
 
 DECLARE_FUNCTION (execCallMulticastDelegate)
 
 DECLARE_FUNCTION (execLetValueOnPersistentFrame)
 
 DECLARE_FUNCTION (execCallMathFunction)
 
 DECLARE_FUNCTION (execSwitchValue)
 
 DECLARE_FUNCTION (execArrayGetByRef)
 
 DECLARE_FUNCTION (execAutoRtfmTransact)
 
 DECLARE_FUNCTION (execAutoRtfmStopTransact)
 
 DECLARE_FUNCTION (execAutoRtfmAbortIfNot)
 
void ExecuteUbergraph (int32 EntryPoint)
 
virtual void ValidateGeneratedRepEnums (const TArray< struct FRepRecord > &ClassReps) const
 
virtual uint64 GetNetPushIdDynamic () const
 
- Public Member Functions inherited from UObjectBaseUtility
 UObjectBaseUtility ()
 
 UObjectBaseUtility (EObjectFlags InFlags)
 
void SetFlags (EObjectFlags NewFlags)
 
void ClearFlags (EObjectFlags FlagsToClear)
 
bool HasAnyFlags (EObjectFlags FlagsToCheck) const
 
bool HasAllFlags (EObjectFlags FlagsToCheck) const
 
UE_FORCEINLINE_HINT EObjectFlags GetMaskedFlags (EObjectFlags Mask=RF_AllFlags) const
 
UE_FORCEINLINE_HINT void Mark (EObjectMark Marks) const
 
UE_FORCEINLINE_HINT void UnMark (EObjectMark Marks) const
 
UE_FORCEINLINE_HINT bool HasAnyMarks (EObjectMark Marks) const
 
UE_FORCEINLINE_HINT bool HasAllMarks (EObjectMark Marks) const
 
UE_FORCEINLINE_HINT EObjectMark GetAllMarks () const
 
void MarkAsGarbage ()
 
void ClearGarbage ()
 
UE_FORCEINLINE_HINT void AddToRoot ()
 
UE_FORCEINLINE_HINT void RemoveFromRoot ()
 
UE_FORCEINLINE_HINT bool IsRooted () const
 
UE_FORCEINLINE_HINT int32 GetRefCount () const
 
bool ThisThreadAtomicallyClearedRFUnreachable ()
 
UE_FORCEINLINE_HINT bool IsUnreachable () const
 
UE_FORCEINLINE_HINT bool IsNative () const
 
void SetInternalFlags (EInternalObjectFlags FlagsToSet) const
 
UE_FORCEINLINE_HINT EInternalObjectFlags GetInternalFlags () const
 
UE_FORCEINLINE_HINT bool HasAnyInternalFlags (EInternalObjectFlags FlagsToCheck) const
 
void ClearInternalFlags (EInternalObjectFlags FlagsToClear) const
 
bool AtomicallyClearInternalFlags (EInternalObjectFlags FlagsToClear) const
 
COREUOBJECT_API FString GetFullName (const UObject *StopOuter=NULL, EObjectFullNameFlags Flags=EObjectFullNameFlags::None) const
 
COREUOBJECT_API void GetFullName (const UObject *StopOuter, FString &ResultString, EObjectFullNameFlags Flags=EObjectFullNameFlags::None) const
 
COREUOBJECT_API void GetFullName (FStringBuilderBase &ResultString, const UObject *StopOuter=NULL, EObjectFullNameFlags Flags=EObjectFullNameFlags::None) const
 
COREUOBJECT_API FString GetPathName (const UObject *StopOuter=NULL) const
 
COREUOBJECT_API void GetPathName (const UObject *StopOuter, FString &ResultString) const
 
COREUOBJECT_API void GetPathName (const UObject *StopOuter, FStringBuilderBase &ResultString) const
 
virtual bool CanBeClusterRoot () const
 
virtual COREUOBJECT_API bool CanBeInCluster () const
 
virtual COREUOBJECT_API void CreateCluster ()
 
virtual void OnClusterMarkedAsPendingKill ()
 
COREUOBJECT_API void AddToCluster (UObjectBaseUtility *ClusterRootOrObjectFromCluster, bool bAddAsMutableObject=false)
 
COREUOBJECT_API FString GetFullGroupName (bool bStartWithOuter) const
 
UE_FORCEINLINE_HINT FString GetName () const
 
UE_FORCEINLINE_HINT void GetName (FString &ResultString) const
 
UE_FORCEINLINE_HINT void AppendName (FString &ResultString) const
 
COREUOBJECT_API bool IsPackageExternal () const
 
COREUOBJECT_API void DetachExternalPackage ()
 
COREUOBJECT_API void ReattachExternalPackage ()
 
COREUOBJECT_API UObjectGetOutermostObject () const
 
COREUOBJECT_API UPackageGetPackage () const
 
UE_INTERNAL virtual COREUOBJECT_API UE::Core::FVersePath GetVersePath () const
 
COREUOBJECT_API UPackageGetOutermost () const
 
COREUOBJECT_API bool MarkPackageDirty () const
 
COREUOBJECT_API bool IsTemplate (EObjectFlags TemplateTypes=RF_ArchetypeObject|RF_ClassDefaultObject) const
 
COREUOBJECT_API UObjectGetTypedOuter (UClass *Target) const
 
template<typename T >
T * GetTypedOuter () const
 
template<typename InterfaceClassType >
InterfaceClassTypeGetImplementingOuter () const
 
COREUOBJECT_API UObjectBaseUtilityGetImplementingOuterObject (const UClass *InInterfaceClass) const
 
COREUOBJECT_API bool IsIn (const UObject *SomeOuter) const
 
COREUOBJECT_API bool IsIn (const UPackage *SomePackage) const
 
COREUOBJECT_API bool IsInOuter (const UObject *SomeOuter) const
 
COREUOBJECT_API bool IsInPackage (const UPackage *SomePackage) const
 
COREUOBJECT_API bool IsInA (const UClass *SomeBaseClass) const
 
COREUOBJECT_API bool RootPackageHasAnyFlags (uint32 CheckFlagMask) const
 
template<typename OtherClassType >
bool IsA (OtherClassType SomeBase) const
 
template<class T >
bool IsA () const
 
COREUOBJECT_API const UClassFindNearestCommonBaseClass (const UClass *TestClass) const
 
COREUOBJECT_API voidGetInterfaceAddress (UClass *InterfaceClass)
 
COREUOBJECT_API voidGetNativeInterfaceAddress (UClass *InterfaceClass)
 
const voidGetNativeInterfaceAddress (UClass *InterfaceClass) const
 
COREUOBJECT_API bool IsTemplateForSubobjects (EObjectFlags TemplateTypes=RF_ClassDefaultObject|RF_DefaultSubObject|RF_InheritableComponentTemplate) const
 
COREUOBJECT_API bool IsDefaultSubobject () const
 
COREUOBJECT_API class FLinkerLoadGetLinker () const
 
COREUOBJECT_API int32 GetLinkerIndex () const
 
COREUOBJECT_API FPackageFileVersion GetLinkerUEVersion () const
 
int32 GetLinkerUE4Version () const
 
COREUOBJECT_API int32 GetLinkerLicenseeUEVersion () const
 
int32 GetLinkerLicenseeUE4Version () const
 
COREUOBJECT_API int32 GetLinkerCustomVersion (FGuid CustomVersionKey) const
 
UE_FORCEINLINE_HINT bool operator< (const UObjectBaseUtility &Other) const
 
TStatId GetStatID (bool bForDeferredUse=false) const
 
- Public Member Functions inherited from UObjectBase
COREUOBJECT_API UObjectBase (UClass *InClass, EObjectFlags InFlags, EInternalObjectFlags InInternalFlags, UObject *InOuter, FName InName, int32 InInternalIndex=-1, int32 InSerialNumber=0, FRemoteObjectId InRemoteId=FRemoteObjectId())
 
virtual COREUOBJECT_API ~UObjectBase ()
 
COREUOBJECT_API bool IsValidLowLevel () const
 
COREUOBJECT_API bool IsValidLowLevelFast (bool bRecursive=true) const
 
FORCEINLINE uint32 GetUniqueID () const
 
FORCEINLINE UClassGetClass () const
 
FORCEINLINE UObjectGetOuter () const
 
FORCEINLINE FName GetFName () const
 
virtual COREUOBJECT_API FName GetFNameForStatID () const
 
COREUOBJECT_API UPackageGetExternalPackage () const
 
COREUOBJECT_API void SetExternalPackage (UPackage *InPackage)
 
COREUOBJECT_API UPackageGetExternalPackageInternal () const
 
COREUOBJECT_API void MarkAsReachable () const
 
COREUOBJECT_API void AddRef () const
 
COREUOBJECT_API void ReleaseRef () const
 
FORCEINLINE EObjectFlags GetFlags () const
 
FORCENOINLINE void AtomicallySetFlags (EObjectFlags FlagsToAdd)
 
FORCENOINLINE void AtomicallyClearFlags (EObjectFlags FlagsToClear)
 

Public Attributes

FOnToolShutdownRequest OnToolShutdownRequest
 
FOnToolUnexpectedShutdownMessage OnToolUnexpectedShutdownMessage
 
TObjectPtr< UInteractiveToolActiveLeftTool
 
TObjectPtr< UInteractiveToolActiveRightTool
 
FToolManagerToolStartedSignature OnToolStarted
 
FToolManagerToolPostBuildSignature OnToolPostBuild
 
FToolManagerToolPostSetupSignature OnToolPostSetup
 
FToolManagerToolEndedSignature OnToolEnded
 
FToolManagerToolCancelledSignature OnToolEndedWithStatus
 

Protected Member Functions

INTERACTIVETOOLSFRAMEWORK_API UInteractiveToolManager ()
 
virtual INTERACTIVETOOLSFRAMEWORK_API void Initialize (IToolsContextQueriesAPI *QueriesAPI, IToolsContextTransactionsAPI *TransactionsAPI, UInputRouter *InputRouter)
 
virtual INTERACTIVETOOLSFRAMEWORK_API void Shutdown ()
 
virtual INTERACTIVETOOLSFRAMEWORK_API void DoPostBuild (EToolSide Side, UInteractiveTool *InBuiltTool, UInteractiveToolBuilder *InToolBuilder, const FToolBuilderState &InBuilderState)
 
virtual INTERACTIVETOOLSFRAMEWORK_API void DoPostSetup (EToolSide Side, UInteractiveTool *InInteractiveTool, UInteractiveToolBuilder *InToolBuilder, const FToolBuilderState &InBuilderState)
 
virtual INTERACTIVETOOLSFRAMEWORK_API bool ActivateToolInternal (EToolSide Side)
 
virtual INTERACTIVETOOLSFRAMEWORK_API void DeactivateToolInternal (EToolSide Side, EToolShutdownType ShutdownType)
 
- Protected Member Functions inherited from UObject
virtual FString GetDetailedInfoInternal () const
 
COREUOBJECT_API bool CanCheckDefaultSubObjects (bool bForceCheck, bool &bResult) const
 
virtual COREUOBJECT_API bool CheckDefaultSubobjectsInternal () const
 
- Protected Member Functions inherited from UObjectBase
 UObjectBase ()
 
COREUOBJECT_API UObjectBase (EObjectFlags InFlags)
 
COREUOBJECT_API void LowLevelRename (FName NewName, UObject *NewOuter=NULL)
 
virtual void RegisterDependencies ()
 
COREUOBJECT_API void Register (class UClass *(*StaticClassFn)(), const TCHAR *PackageName, const TCHAR *Name)
 
COREUOBJECT_API void Register (const TCHAR *PackageName, const TCHAR *Name)
 
virtual COREUOBJECT_API void DeferredRegister (UClass *UClassStaticClass, const TCHAR *PackageName, const TCHAR *Name)
 
FORCEINLINE void SetFlagsTo (EObjectFlags NewFlags)
 

Protected Attributes

IToolsContextQueriesAPIQueriesAPI
 
IToolsContextTransactionsAPITransactionsAPI
 
UInputRouterInputRouter
 
bool bIsActive = false
 
bool bInToolSetup = false
 
bool bToolRequestedTerminationDuringSetup = false
 
TMap< FString, TObjectPtr< UInteractiveToolBuilder > > ToolBuilders
 
FString ActiveLeftBuilderName
 
UInteractiveToolBuilderActiveLeftBuilder
 
FString ActiveRightBuilderName
 
UInteractiveToolBuilderActiveRightBuilder
 
EToolChangeTrackingMode ActiveToolChangeTrackingMode
 
EToolManagerToolSwitchMode ToolSwitchMode = EToolManagerToolSwitchMode::CustomizableAcceptIfAble
 
FString ActiveLeftToolName
 
FString ActiveRightToolName
 
bool bInToolShutdown = false
 
bool bActiveToolMadeSelectionStoreRequest = false
 

Friends

class UInteractiveToolsContext
 
class FBeginToolChange
 
class FActivateToolChange
 

Additional Inherited Members

- Public Types inherited from UObject
enum class  ENetFields_Private { NETFIELD_REP_START = 0 , NETFIELD_REP_END = -1 }
 
typedef UObject WithinClass
 
- Static Public Member Functions inherited from UObject
static COREUOBJECT_API void UpdateClassesExcludedFromDedicatedServer (const TArray< FString > &InClassNames, const TArray< FString > &InModulesNames)
 
static COREUOBJECT_API void UpdateClassesExcludedFromDedicatedClient (const TArray< FString > &InClassNames, const TArray< FString > &InModulesNames)
 
static COREUOBJECT_API bool CanCreateInCurrentContext (UObject *Template)
 
static COREUOBJECT_API void AddReferencedObjects (UObject *InThis, FReferenceCollector &Collector)
 
static COREUOBJECT_API const FNameSourceFileTagName ()
 
static COREUOBJECT_API UObjectGetArchetypeFromRequiredInfo (const UClass *Class, const UObject *Outer, FName Name, EObjectFlags ObjectFlags)
 
- Static Public Member Functions inherited from UObjectBaseUtility
static bool IsGarbageEliminationEnabled ()
 
static bool IsPendingKillEnabled ()
 
static void SetGarbageEliminationEnabled (bool bEnabled)
 
static COREUOBJECT_API void ReloadObjectsFromModifiedConfigSections (const class FConfigModificationTracker *ChangeTracker)
 
- Static Public Member Functions inherited from UObjectBase
static COREUOBJECT_API FString RemoveClassPrefix (const TCHAR *ClassName)
 
static void PrefetchClass (UObject *Object)
 
static void PrefetchOuter (UObject *Object)
 

Detailed Description

UInteractiveToolManager allows users of the tools framework to create and operate Tool instances. For each Tool, a (string,ToolBuilder) pair is registered with the ToolManager. Tools can then be activated via the string identifier.

Currently a single Tool can be active for each input device. So for mouse input a single Tool is available and effectively a lightweight mode. The mouse uses the "Left" tool slot.

For VR controllers and touch input, a "Left" and "Right" tool can be active at the same time.

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

Constructor & Destructor Documentation

◆ UInteractiveToolManager()

UInteractiveToolManager::UInteractiveToolManager ( )
protected

Member Function Documentation

◆ ActivateTool()

bool UInteractiveToolManager::ActivateTool ( EToolSide  Side)
virtual

Try to activate a new Tool instance on the given Side. If another tool is already active, it will be shut down according to ToolSwitchMode.

Parameters
Sidewhich "side" you would like to active the tool on
Returns
true if a new Tool instance was created and initialized

◆ ActivateToolInternal()

bool UInteractiveToolManager::ActivateToolInternal ( EToolSide  Side)
protectedvirtual

◆ BeginUndoTransaction()

void UInteractiveToolManager::BeginUndoTransaction ( const FText Description)
virtual

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

Parameters
Descriptiontext description of this transaction (this is the string that appears on undo/redo in the UE Editor)

Implements IToolContextTransactionProvider.

◆ CanAcceptActiveTool()

bool UInteractiveToolManager::CanAcceptActiveTool ( EToolSide  Side)
virtual

Check if an active Tool on the given Side can be Accepted in its current state

Parameters
Sidewhich Side to check
Returns
true if there is an active Tool and it returns true from HasAccept() and CanAccept()

◆ CanActivateTool()

bool UInteractiveToolManager::CanActivateTool ( EToolSide  eSide,
FString  Identifier 
)
virtual

Check if a named Tool type can currently be activated on the given ToolSide

Parameters
Sidewhich "side" you would like to active the tool on
Identifierstring name of the Tool type
Returns
true if the Tool type could be activated

◆ CanCancelActiveTool()

bool UInteractiveToolManager::CanCancelActiveTool ( EToolSide  Side)
virtual

Check if an active Tool on the given Side can be Canceled

Parameters
Sidewhich Side to check
Returns
true if there is an active Tool and it returns true from HasCancel()

◆ ConfigureChangeTrackingMode()

void UInteractiveToolManager::ConfigureChangeTrackingMode ( EToolChangeTrackingMode  ChangeMode)
virtual

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

◆ DeactivateTool()

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

Shut down an active Tool on the given side

Parameters
Sidewhich "side" you would like to shut down
ShutdownTypehow should the tool be terminated (eg Accept/Cancel)

◆ DeactivateToolInternal()

void UInteractiveToolManager::DeactivateToolInternal ( EToolSide  Side,
EToolShutdownType  ShutdownType 
)
protectedvirtual

◆ DECLARE_DELEGATE_RetVal_ThreeParams()

UInteractiveToolManager::DECLARE_DELEGATE_RetVal_ThreeParams ( bool  ,
FOnToolShutdownRequest  ,
UInteractiveToolManager ,
UInteractiveTool ,
EToolShutdownType   
)

◆ DECLARE_MULTICAST_DELEGATE_FiveParams()

UInteractiveToolManager::DECLARE_MULTICAST_DELEGATE_FiveParams ( FToolManagerToolPostBuildSignature  ,
UInteractiveToolManager ,
EToolSide  ,
UInteractiveTool ,
UInteractiveToolBuilder ,
const FToolBuilderState  
)

◆ DECLARE_MULTICAST_DELEGATE_FourParams()

UInteractiveToolManager::DECLARE_MULTICAST_DELEGATE_FourParams ( FOnToolUnexpectedShutdownMessage  ,
UInteractiveToolManager ,
UInteractiveTool ,
const FText Message,
bool  bWasDuringToolSetup 
)

◆ DECLARE_MULTICAST_DELEGATE_ThreeParams() [1/2]

UInteractiveToolManager::DECLARE_MULTICAST_DELEGATE_ThreeParams ( FToolManagerToolCancelledSignature  ,
UInteractiveToolManager ,
UInteractiveTool ,
EToolShutdownType   
)

◆ DECLARE_MULTICAST_DELEGATE_ThreeParams() [2/2]

UInteractiveToolManager::DECLARE_MULTICAST_DELEGATE_ThreeParams ( FToolManagerToolPostSetupSignature  ,
UInteractiveToolManager ,
EToolSide  ,
UInteractiveTool  
)

◆ DECLARE_MULTICAST_DELEGATE_TwoParams() [1/2]

UInteractiveToolManager::DECLARE_MULTICAST_DELEGATE_TwoParams ( FToolManagerToolEndedSignature  ,
UInteractiveToolManager ,
UInteractiveTool  
)

◆ DECLARE_MULTICAST_DELEGATE_TwoParams() [2/2]

UInteractiveToolManager::DECLARE_MULTICAST_DELEGATE_TwoParams ( FToolManagerToolStartedSignature  ,
UInteractiveToolManager ,
UInteractiveTool  
)

◆ DisplayMessage()

void UInteractiveToolManager::DisplayMessage ( const FText Message,
EToolMessageLevel  Level 
)
virtual

Post a message via the Transactions API

◆ DoPostBuild()

void UInteractiveToolManager::DoPostBuild ( EToolSide  Side,
UInteractiveTool InBuiltTool,
UInteractiveToolBuilder InToolBuilder,
const FToolBuilderState InBuilderState 
)
protectedvirtual

Called immediately after a tool is built. Broadcasts OnToolPostBuild.

◆ DoPostSetup()

void UInteractiveToolManager::DoPostSetup ( EToolSide  Side,
UInteractiveTool InInteractiveTool,
UInteractiveToolBuilder InToolBuilder,
const FToolBuilderState InBuilderState 
)
protectedvirtual

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

◆ DrawHUD()

void UInteractiveToolManager::DrawHUD ( FCanvas Canvas,
IToolsContextRenderAPI RenderAPI 
)
virtual

Let active Tools do their screen space drawing. Called by UInteractiveToolsContext.

◆ EmitObjectChange()

void UInteractiveToolManager::EmitObjectChange ( UObject TargetObject,
TUniquePtr< FToolCommandChange Change,
const FText Description 
)
virtual

Forward an FChange object to the Context

Parameters
TargetObjectthe object that the FChange applies to
Changethe change object that the Context should insert into the transaction history
Descriptiontext description of this change (this is the string that appears on undo/redo in the UE Editor)

Implements IToolContextTransactionProvider.

◆ EndUndoTransaction()

void UInteractiveToolManager::EndUndoTransaction ( )
virtual

Request that the Context close and commit the open Transaction

Implements IToolContextTransactionProvider.

◆ GetActiveTool()

UInteractiveTool * UInteractiveToolManager::GetActiveTool ( EToolSide  Side)
virtual

Get pointer to active Tool on a given side

Parameters
Sidewhich Side is being requested
Returns
pointer to Tool instance active on that Side, or nullptr if no such Tool exists

◆ GetActiveToolBuilder()

UInteractiveToolBuilder * UInteractiveToolManager::GetActiveToolBuilder ( EToolSide  Side)
virtual

Get pointer to active Tool Builder on a given side

Parameters
Sidewhich Side is being requested
Returns
pointer to Tool Builder instance active on that Side, or nullptr if no such ToolBuilder exists

◆ GetActiveToolName()

FString UInteractiveToolManager::GetActiveToolName ( EToolSide  Side)
virtual

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

Parameters
Sidewhich Side is being requested
Returns
name of tool, or empty string if no tool is active

◆ GetActiveToolType()

const FString & UInteractiveToolManager::GetActiveToolType ( EToolSide  Side) const
virtual

Get active ToolBuilder string identifier for a ToolSide

Parameters
Sidewhich "side" should we get this Builder from

◆ GetChangeTrackingMode()

EToolChangeTrackingMode UInteractiveToolManager::GetChangeTrackingMode ( ) const
virtual

Returns how tool changes emit change events. See EToolChangeTrackingMode for details.

◆ GetContextObjectStore()

UContextObjectStore * UInteractiveToolManager::GetContextObjectStore ( ) const
Returns
the context object store from the owning tools context.

◆ GetContextQueriesAPI()

virtual IToolsContextQueriesAPI * UInteractiveToolManager::GetContextQueriesAPI ( )
inlinevirtual
Returns
current IToolsContextQueriesAPI

◆ GetContextTransactionsAPI()

virtual IToolsContextTransactionsAPI * UInteractiveToolManager::GetContextTransactionsAPI ( )
inlinefinalvirtual

◆ GetPairedGizmoManager()

UInteractiveGizmoManager * UInteractiveToolManager::GetPairedGizmoManager ( )

◆ GetPreferredShutdownType()

EToolShutdownType UInteractiveToolManager::GetPreferredShutdownType ( EToolSide  Side,
EToolShutdownReason  ShutdownReason = EToolShutdownReason::Unspecified 
)

Determines the preferred shutdown type for the active tool based on the tool's type and the tool manager's configuration.

◆ GetToolSwitchMode()

virtual EToolManagerToolSwitchMode UInteractiveToolManager::GetToolSwitchMode ( ) const
inlinevirtual

Get the current setting for how to deactivate an already-active tool if switching directly to another tool.

◆ HasActiveTool()

bool UInteractiveToolManager::HasActiveTool ( EToolSide  Side) const
virtual

Check if there is an active Tool on the given Side

Parameters
Sidewhich Side to check
Returns
true if there is an active Tool on that side

◆ HasAnyActiveTool()

bool UInteractiveToolManager::HasAnyActiveTool ( ) const
virtual
Returns
true if there are any active tools

◆ Initialize()

void UInteractiveToolManager::Initialize ( IToolsContextQueriesAPI QueriesAPI,
IToolsContextTransactionsAPI TransactionsAPI,
UInputRouter InputRouter 
)
protectedvirtual

Initialize the ToolManager with the necessary Context-level state. UInteractiveToolsContext calls this, you should not.

◆ IsActive()

bool UInteractiveToolManager::IsActive ( ) const
inline
Returns
true if ToolManager is currently active, ie between Initialize() and Shutdown()

◆ PostActiveToolShutdownRequest()

bool UInteractiveToolManager::PostActiveToolShutdownRequest ( UInteractiveTool Tool,
EToolShutdownType  ShutdownType,
bool  bShowUnexpectedShutdownMessage = false,
const FText UnexpectedShutdownMessage = FText() 
)
virtual

A Tool (or other code) can call this function to request that the Tool be deactivated. The Tool must be active. By default, DeactivateTool() wil be called. However if some external code has bound to the OnToolShutdownRequest delegate, the request will be forwarded to that function first (DeactivateTool() will still be called if it returns false)

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 request will not be forwarded to the OnToolShutdownRequest delegate.

Parameters
bShowUnexpectedShutdownMessageif this was an unexpected shutdown, passing true here, along with a non-empty UnexpectedShutdownMessage, will result in OnToolUnexpectedShutdownMessage being called
UnexpectedShutdownMessagemessage provided by the caller meant to explain why the Tool has unexpectedly been shut down

◆ PostInvalidation()

void UInteractiveToolManager::PostInvalidation ( )
virtual

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

◆ RegisterToolType()

void UInteractiveToolManager::RegisterToolType ( const FString &  Identifier,
UInteractiveToolBuilder Builder 
)
virtual

Register a new ToolBuilder

Parameters
Identifierstring used to identify this Builder
Buildernew ToolBuilder instance

◆ Render()

void UInteractiveToolManager::Render ( IToolsContextRenderAPI RenderAPI)
virtual

Render any active Tools. Called by UInteractiveToolsContext.

◆ RequestSelectionChange()

bool UInteractiveToolManager::RequestSelectionChange ( const FSelectedObjectsChangeList SelectionChange)
virtual

Forward an FChange object to the Context

◆ SelectActiveToolType()

bool UInteractiveToolManager::SelectActiveToolType ( EToolSide  Side,
const FString &  Identifier 
)
virtual

Set active ToolBuilder for a ToolSide via string identifier

Parameters
Sidewhich "side" should we set this Builder on
Identifiername of ToolBuilder that was passed to RegisterToolType()

◆ SetToolSwitchMode()

virtual void UInteractiveToolManager::SetToolSwitchMode ( EToolManagerToolSwitchMode  ToolSwitchModeIn)
inlinevirtual

Set the behavior for how to deactivate an already-active tool if ActivateTool is called while HasActiveTool is true.

Note: a higher level system could choose to enforce its preferences for this behavior by querying HasActiveTool and making sure to shut down the previous tool before calling ActivateTool. However it is convenient to be able to set the behavior at the tool manager level.

◆ Shutdown()

void UInteractiveToolManager::Shutdown ( )
protectedvirtual

Shutdown the ToolManager. Called by UInteractiveToolsContext.

◆ Tick()

void UInteractiveToolManager::Tick ( float  DeltaTime)
virtual

Tick any active Tools. Called by UInteractiveToolsContext

◆ UnregisterToolType()

void UInteractiveToolManager::UnregisterToolType ( const FString &  Identifier)
virtual

Unregisters a ToolBuilder

Parameters
Identifierstring used to identify this Builder
Buildernew ToolBuilder instance

Friends And Related Symbol Documentation

◆ FActivateToolChange

◆ FBeginToolChange

friend class FBeginToolChange
friend

◆ UInteractiveToolsContext

Member Data Documentation

◆ ActiveLeftBuilder

UInteractiveToolBuilder* UInteractiveToolManager::ActiveLeftBuilder
protected

◆ ActiveLeftBuilderName

FString UInteractiveToolManager::ActiveLeftBuilderName
protected

Currently-active Left ToolBuilder

◆ ActiveLeftTool

TObjectPtr<UInteractiveTool> UInteractiveToolManager::ActiveLeftTool

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

◆ ActiveLeftToolName

FString UInteractiveToolManager::ActiveLeftToolName
protected

◆ ActiveRightBuilder

UInteractiveToolBuilder* UInteractiveToolManager::ActiveRightBuilder
protected

◆ ActiveRightBuilderName

FString UInteractiveToolManager::ActiveRightBuilderName
protected

Currently-active Right ToolBuilder

◆ ActiveRightTool

TObjectPtr<UInteractiveTool> UInteractiveToolManager::ActiveRightTool

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

◆ ActiveRightToolName

FString UInteractiveToolManager::ActiveRightToolName
protected

◆ ActiveToolChangeTrackingMode

EToolChangeTrackingMode UInteractiveToolManager::ActiveToolChangeTrackingMode
protected

◆ bActiveToolMadeSelectionStoreRequest

bool UInteractiveToolManager::bActiveToolMadeSelectionStoreRequest = false
protected

◆ bInToolSetup

bool UInteractiveToolManager::bInToolSetup = false
protected

◆ bInToolShutdown

bool UInteractiveToolManager::bInToolShutdown = false
protected

◆ bIsActive

bool UInteractiveToolManager::bIsActive = false
protected

This flag is set to true on Initialize() and false on Shutdown().

◆ bToolRequestedTerminationDuringSetup

bool UInteractiveToolManager::bToolRequestedTerminationDuringSetup = false
protected

◆ InputRouter

UInputRouter* UInteractiveToolManager::InputRouter
protected

Pointer to current InputRouter (Context owns this)

◆ OnToolEnded

FToolManagerToolEndedSignature UInteractiveToolManager::OnToolEnded

◆ OnToolEndedWithStatus

FToolManagerToolCancelledSignature UInteractiveToolManager::OnToolEndedWithStatus

◆ OnToolPostBuild

FToolManagerToolPostBuildSignature UInteractiveToolManager::OnToolPostBuild

◆ OnToolPostSetup

FToolManagerToolPostSetupSignature UInteractiveToolManager::OnToolPostSetup

◆ OnToolShutdownRequest

FOnToolShutdownRequest UInteractiveToolManager::OnToolShutdownRequest

If bound, OnToolShutdownRequest is called by PostActiveToolShutdownRequest to optionally handle requests to shut down a Tool (which may be sent by the Tool itself). Return true to indicate that the request will be handled, otherwise DeactivateTool() will be called

◆ OnToolStarted

FToolManagerToolStartedSignature UInteractiveToolManager::OnToolStarted

◆ OnToolUnexpectedShutdownMessage

FOnToolUnexpectedShutdownMessage UInteractiveToolManager::OnToolUnexpectedShutdownMessage

PostActiveToolShutdownRequest() will broadcast this delegate with a Message if bShowUnexpectedShutdownMessage=true. If the shutdown was during Tool Setup/startup, bWasDuringToolSetup will be passed as true

◆ QueriesAPI

IToolsContextQueriesAPI* UInteractiveToolManager::QueriesAPI
protected

Pointer to current Context-Queries implementation

◆ ToolBuilders

TMap<FString, TObjectPtr<UInteractiveToolBuilder> > UInteractiveToolManager::ToolBuilders
protected

Current set of named ToolBuilders

◆ ToolSwitchMode

EToolManagerToolSwitchMode UInteractiveToolManager::ToolSwitchMode = EToolManagerToolSwitchMode::CustomizableAcceptIfAble
protected

◆ TransactionsAPI

IToolsContextTransactionsAPI* UInteractiveToolManager::TransactionsAPI
protected

Pointer to current Transactions implementation


The documentation for this class was generated from the following files: