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

#include <InteractiveTool.h>

+ Inheritance diagram for UInteractiveTool:

Public Member Functions

INTERACTIVETOOLSFRAMEWORK_API UInteractiveTool ()
 
virtual INTERACTIVETOOLSFRAMEWORK_API void Setup ()
 
virtual INTERACTIVETOOLSFRAMEWORK_API void Shutdown (EToolShutdownType ShutdownType)
 
virtual INTERACTIVETOOLSFRAMEWORK_API void Render (IToolsContextRenderAPI *RenderAPI)
 
virtual INTERACTIVETOOLSFRAMEWORK_API void DrawHUD (FCanvas *Canvas, IToolsContextRenderAPI *RenderAPI)
 
virtual INTERACTIVETOOLSFRAMEWORK_API void Tick (float DeltaTime) final
 
virtual INTERACTIVETOOLSFRAMEWORK_API UInteractiveToolManagerGetToolManager () const
 
virtual INTERACTIVETOOLSFRAMEWORK_API bool HasCancel () const
 
virtual INTERACTIVETOOLSFRAMEWORK_API bool HasAccept () const
 
virtual INTERACTIVETOOLSFRAMEWORK_API bool CanAccept () const
 
virtual INTERACTIVETOOLSFRAMEWORK_API void AddInputBehavior (UInputBehavior *Behavior, void *Source=nullptr)
 
virtual INTERACTIVETOOLSFRAMEWORK_API void RemoveInputBehaviorsBySource (void *Source)
 
virtual INTERACTIVETOOLSFRAMEWORK_API const UInputBehaviorSetGetInputBehaviors () const
 
virtual INTERACTIVETOOLSFRAMEWORK_API TArray< UObject * > GetToolProperties (bool bEnabledOnly=true) const
 
 DECLARE_MULTICAST_DELEGATE (OnInteractiveToolPropertySetsModified)
 
 DECLARE_MULTICAST_DELEGATE_OneParam (OnInteractiveToolPropertyInternallyModified, UObject *)
 
virtual void OnPropertyModified (UObject *PropertySet, FProperty *Property)
 
virtual INTERACTIVETOOLSFRAMEWORK_API FInteractiveToolActionSetGetActionSet ()
 
virtual INTERACTIVETOOLSFRAMEWORK_API void ExecuteAction (int32 ActionID)
 
virtual FInteractiveToolInfo GetToolInfo () const
 
virtual void SetToolInfo (const FInteractiveToolInfo &NewInfo)
 
virtual void SetToolDisplayName (const FText &NewName)
 
virtual void SetToolDisplayMessage (const FText &NewDisplayMessage)
 
virtual void SetToolIcon (const FSlateBrush *NewIcon)
 
- 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

OnInteractiveToolPropertySetsModified OnPropertySetsModified
 
OnInteractiveToolPropertyInternallyModified OnPropertyModifiedDirectlyByTool
 

Protected Types

enum  EAcceptWarning { NoWarning , EmptyForbidden }
 

Protected Member Functions

virtual INTERACTIVETOOLSFRAMEWORK_API void AddToolPropertySource (UObject *PropertyObject)
 
virtual INTERACTIVETOOLSFRAMEWORK_API void AddToolPropertySource (UInteractiveToolPropertySet *PropertySet)
 
virtual INTERACTIVETOOLSFRAMEWORK_API bool RemoveToolPropertySource (UInteractiveToolPropertySet *PropertySet)
 
virtual INTERACTIVETOOLSFRAMEWORK_API bool ReplaceToolPropertySource (UInteractiveToolPropertySet *CurPropertySet, UInteractiveToolPropertySet *ReplaceWith, bool bSetToEnabled=true)
 
virtual INTERACTIVETOOLSFRAMEWORK_API bool SetToolPropertySourceEnabled (UInteractiveToolPropertySet *PropertySet, bool bEnabled)
 
virtual INTERACTIVETOOLSFRAMEWORK_API void NotifyOfPropertyChangeByTool (UInteractiveToolPropertySet *PropertySet) const
 
virtual INTERACTIVETOOLSFRAMEWORK_API void UpdateAcceptWarnings (EAcceptWarning Warning)
 
virtual void OnTick (float DeltaTime)
 
virtual INTERACTIVETOOLSFRAMEWORK_API void RegisterActions (FInteractiveToolActionSet &ActionSet)
 
- 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

TObjectPtr< UInputBehaviorSetInputBehaviors
 
TArray< TObjectPtr< UObject > > ToolPropertyObjects
 

Friends

class UInteractionMechanic
 

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

UInteractiveTool is the base class for all Tools in the InteractiveToolsFramework. A Tool is is a "lightweight mode" that may "own" one or more Actors/Components/etc in the current scene, may capture certain input devices or event streams, and so on. The base implementation essentially does nothing but provide sane default behaviors.

The BaseTools/ subfolder contains implementations of various kinds of standard "tool behavior", like a tool that responds to a mouse click, etc, that can be extended to implement custom behaviors.

In the framework, you do not create instances of UInteractiveTool yourself. You provide a UInteractiveToolBuilder implementation that can properly construct an instance of your Tool, this is where for example default parameters would be set. The ToolBuilder is registered with the ToolManager, and then UInteractiveToolManager::ActivateTool() is used to kick things off.

Member Enumeration Documentation

◆ EAcceptWarning

Enumerator
NoWarning 
EmptyForbidden 

Constructor & Destructor Documentation

◆ UInteractiveTool()

UInteractiveTool::UInteractiveTool ( )

Member Function Documentation

◆ AddInputBehavior()

void UInteractiveTool::AddInputBehavior ( UInputBehavior Behavior,
void Source = nullptr 
)
virtual

Add an input behavior for this Tool. Typically only effective when called during tool Setup(), as the behavior set gets submitted to the input router after that call.

Parameters
Behaviorbehavior to add
SourceOptional pointer that could be used to identify the behavior for removal later.

◆ AddToolPropertySource() [1/2]

void UInteractiveTool::AddToolPropertySource ( UInteractiveToolPropertySet PropertySet)
protectedvirtual

Add a PropertySet object for this Tool

Parameters
PropertySetProperty Set object to add

◆ AddToolPropertySource() [2/2]

void UInteractiveTool::AddToolPropertySource ( UObject PropertyObject)
protectedvirtual

Add a Property object for this Tool

Parameters
Propertyobject to add

◆ CanAccept()

bool UInteractiveTool::CanAccept ( ) const
virtual
Returns
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.

Reimplemented in UMultiSelectionTool, and USingleSelectionTool.

◆ DECLARE_MULTICAST_DELEGATE()

UInteractiveTool::DECLARE_MULTICAST_DELEGATE ( OnInteractiveToolPropertySetsModified  )

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

◆ DECLARE_MULTICAST_DELEGATE_OneParam()

UInteractiveTool::DECLARE_MULTICAST_DELEGATE_OneParam ( OnInteractiveToolPropertyInternallyModified  ,
UObject  
)

OnPropertyModifiedDirectlyByTool is broadcast whenever the ToolPropertyObjects array stays the same, but a property inside of one of the objects is changed internally by the tool. This allows any external display of such properties to properly update. In a DetailsViewPanel, for instance, it refreshes certain cached states such as edit condition states for other properties.

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.

◆ DrawHUD()

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

Allow the Tool to do any custom screen space drawing

Parameters
Canvasthe FCanvas to use to do the drawing
RenderAPIAbstraction that provides access to Rendering in the current ToolsContext

Reimplemented in UBaseBrushTool.

◆ ExecuteAction()

void UInteractiveTool::ExecuteAction ( int32  ActionID)
virtual

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

◆ GetActionSet()

FInteractiveToolActionSet * UInteractiveTool::GetActionSet ( )
virtual

Get the internal Action Set for this Tool. The action set is created and registered on-demand.

Returns
pointer to initialized Action set

◆ GetInputBehaviors()

const UInputBehaviorSet * UInteractiveTool::GetInputBehaviors ( ) const
virtual
Returns
Current input behavior set.

Implements IInputBehaviorSource.

◆ GetToolInfo()

virtual FInteractiveToolInfo UInteractiveTool::GetToolInfo ( ) const
inlinevirtual
Returns
ToolInfo structure for this Tool

◆ GetToolManager()

UInteractiveToolManager * UInteractiveTool::GetToolManager ( ) const
virtual
Returns
ToolManager that owns this Tool

◆ GetToolProperties()

TArray< UObject * > UInteractiveTool::GetToolProperties ( bool  bEnabledOnly = true) const
virtual
Returns
list of property UObjects for this tool (ie to add to a DetailsViewPanel, for example)

◆ HasAccept()

bool UInteractiveTool::HasAccept ( ) const
virtual
Returns
true if this Tool support being Accepted, ie calling Shutdown(EToolShutdownType::Accept)

◆ HasCancel()

bool UInteractiveTool::HasCancel ( ) const
virtual
Returns
true if this Tool support being Cancelled, ie calling Shutdown(EToolShutdownType::Cancel)

◆ NotifyOfPropertyChangeByTool()

void UInteractiveTool::NotifyOfPropertyChangeByTool ( UInteractiveToolPropertySet PropertySet) const
protectedvirtual

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).

◆ OnPropertyModified()

virtual void UInteractiveTool::OnPropertyModified ( UObject PropertySet,
FProperty Property 
)
inlinevirtual

Automatically called by UInteractiveToolPropertySet.OnModified delegate to notify Tool of child property set changes

Parameters
PropertySetwhich UInteractiveToolPropertySet was modified
Propertywhich FProperty in the set was modified

Reimplemented in UBaseBrushTool.

◆ OnTick()

virtual void UInteractiveTool::OnTick ( float  DeltaTime)
inlineprotectedvirtual

Allow the Tool to do any necessary processing on Tick

Parameters
DeltaTimethe time delta since last tick

Reimplemented in UBaseBrushTool.

◆ RegisterActions()

void UInteractiveTool::RegisterActions ( FInteractiveToolActionSet ActionSet)
protectedvirtual

Override this function to register the set of Actions this Tool supports, using FInteractiveToolActionSet::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

Reimplemented in UBaseBrushTool.

◆ RemoveInputBehaviorsBySource()

void UInteractiveTool::RemoveInputBehaviorsBySource ( void Source)
virtual

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

Parameters
SourceIdentifying pointer

◆ RemoveToolPropertySource()

bool UInteractiveTool::RemoveToolPropertySource ( UInteractiveToolPropertySet PropertySet)
protectedvirtual

Remove a PropertySet object from this Tool. If found, will broadcast OnPropertySetsModified

Parameters
PropertySetproperty set to remove.
Returns
true if PropertySet is found and removed

◆ Render()

void UInteractiveTool::Render ( IToolsContextRenderAPI RenderAPI)
virtual

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

Parameters
RenderAPIAbstraction that provides access to Rendering in the current ToolsContext

Reimplemented in UBaseBrushTool.

◆ ReplaceToolPropertySource()

bool UInteractiveTool::ReplaceToolPropertySource ( UInteractiveToolPropertySet CurPropertySet,
UInteractiveToolPropertySet ReplaceWith,
bool  bSetToEnabled = true 
)
protectedvirtual

Replace a PropertySet object on this Tool with another property set. If replaced, will broadcast OnPropertySetsModified

Parameters
CurPropertySetproperty set to remove
ReplaceWithproperty set to add
bSetToEnabledif true, ReplaceWith property set is explicitly enabled (otherwise enable/disable state is unmodified)
Returns
true if CurPropertySet is found and replaced

◆ SetToolDisplayMessage()

virtual void UInteractiveTool::SetToolDisplayMessage ( const FText NewDisplayMessage)
inlinevirtual

Set the Tool's Display Message

◆ SetToolDisplayName()

virtual void UInteractiveTool::SetToolDisplayName ( const FText NewName)
inlinevirtual

Set Tool name

◆ SetToolIcon()

virtual void UInteractiveTool::SetToolIcon ( const FSlateBrush NewIcon)
inlinevirtual

Set the Tool's Icon

◆ SetToolInfo()

virtual void UInteractiveTool::SetToolInfo ( const FInteractiveToolInfo NewInfo)
inlinevirtual

Replace existing ToolInfo with new data

◆ SetToolPropertySourceEnabled()

bool UInteractiveTool::SetToolPropertySourceEnabled ( UInteractiveToolPropertySet PropertySet,
bool  bEnabled 
)
protectedvirtual

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

Parameters
PropertySetProperty Set object to modify
bEnabledwhether to enable or disable
Returns
true if PropertySet was found

◆ Setup()

void UInteractiveTool::Setup ( )
virtual

Called by ToolManager to initialize the Tool after ToolBuilder::BuildTool() has been called

Reimplemented in UBaseBrushTool, UClickDragTool, UMeshSurfacePointTool, and USingleClickTool.

◆ Shutdown()

void UInteractiveTool::Shutdown ( EToolShutdownType  ShutdownType)
virtual

Called by ToolManager to shut down the Tool

Parameters
ShutdownTypeindicates how the tool should shutdown (ie Accept or Cancel current preview, etc)

Reimplemented in UBaseBrushTool.

◆ Tick()

void UInteractiveTool::Tick ( float  DeltaTime)
finalvirtual

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

Parameters
DeltaTimethe time delta since last tick

◆ UpdateAcceptWarnings()

void UInteractiveTool::UpdateAcceptWarnings ( EAcceptWarning  Warning)
protectedvirtual

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.

Parameters
WarningReason that tool cannot be accepted (or EAcceptWarning::NoWarning if no warning need be displayed)

Friends And Related Symbol Documentation

◆ UInteractionMechanic

Member Data Documentation

◆ InputBehaviors

TObjectPtr<UInputBehaviorSet> UInteractiveTool::InputBehaviors
protected

The current set of InputBehaviors provided by this Tool

◆ OnPropertyModifiedDirectlyByTool

OnInteractiveToolPropertyInternallyModified UInteractiveTool::OnPropertyModifiedDirectlyByTool

◆ OnPropertySetsModified

OnInteractiveToolPropertySetsModified UInteractiveTool::OnPropertySetsModified

◆ ToolPropertyObjects

TArray<TObjectPtr<UObject> > UInteractiveTool::ToolPropertyObjects
protected

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


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