UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
InteractiveToolChange.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
5#include "CoreMinimal.h"
6#include "UObject/Interface.h"
7#include "Misc/Change.h"
8#include "InteractiveToolChange.generated.h"
9
12
13
18{
19public:
20
21 virtual FString ToString() const override { return TEXT("ToolCommandChange"); }
22};
23
24
25
26
27
28UINTERFACE(MinimalAPI)
39{
41public:
46 virtual void BeginUndoTransaction(const FText& Description) = 0;
47
49 virtual void EndUndoTransaction() = 0;
50
57 virtual void EmitObjectChange(UObject* TargetObject, TUniquePtr<FToolCommandChange> Change, const FText& Description) = 0;
58};
59
60
61
62
68{
69public:
71
72 virtual void BeginChange() = 0;
73
74 // Generally assuming that user of this class will call something like EmitObjectChange(GetChangeTarget(), MoveTemp(EndChange()), GetChangeDescription())
75
77 virtual UObject* GetChangeTarget() = 0;
79};
80
81
82
83
84
85
92template<typename ChangeType>
94{
95public:
97
100
101 virtual void Apply(UObject* Object) override
102 {
103 if (BeforeModify)
104 {
105 BeforeModify(false);
106 }
107 WrappedChange->Apply(Object);
108 if (AfterModify)
109 {
110 AfterModify(false);
111 }
112 }
113
114 virtual void Revert(UObject* Object) override
115 {
116 if (BeforeModify)
117 {
118 BeforeModify(true);
119 }
120 WrappedChange->Revert(Object);
121 if (AfterModify)
122 {
123 AfterModify(true);
124 }
125 }
126
127 virtual FString ToString() const override
128 {
129 return WrappedChange->ToString();
130 }
131};
132
OODEFFUNC typedef void(OODLE_CALLBACK t_fp_OodleCore_Plugin_Free)(void *ptr)
#define TEXT(x)
Definition Platform.h:1272
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
#define GENERATED_BODY(...)
Definition ObjectMacros.h:765
#define UINTERFACE(...)
Definition ObjectMacros.h:780
Definition Change.h:140
Definition Text.h:385
Definition InteractiveToolChange.h:18
virtual FString ToString() const override
Definition InteractiveToolChange.h:21
Definition InteractiveToolChange.h:68
virtual TUniquePtr< FToolCommandChange > EndChange()=0
virtual UObject * GetChangeTarget()=0
virtual FText GetChangeDescription()=0
virtual void BeginChange()=0
virtual ~IToolCommandChangeSource()
Definition InteractiveToolChange.h:70
Definition InteractiveToolChange.h:39
virtual void BeginUndoTransaction(const FText &Description)=0
virtual void EndUndoTransaction()=0
virtual void EmitObjectChange(UObject *TargetObject, TUniquePtr< FToolCommandChange > Change, const FText &Description)=0
Definition FunctionFwd.h:19
Definition UniquePtr.h:107
Definition InteractiveToolChange.h:94
virtual void Apply(UObject *Object) override
Definition InteractiveToolChange.h:101
virtual void Revert(UObject *Object) override
Definition InteractiveToolChange.h:114
TUniqueFunction< void(bool bRevert)> AfterModify
Definition InteractiveToolChange.h:99
TUniqueFunction< void(bool bRevert)> BeforeModify
Definition InteractiveToolChange.h:98
TUniquePtr< ChangeType > WrappedChange
Definition InteractiveToolChange.h:96
virtual FString ToString() const override
Definition InteractiveToolChange.h:127
Definition InteractiveGizmoManager.h:40
Definition InteractiveToolManager.h:79
Definition Interface.h:19
Definition Object.h:95
Definition InteractiveToolChange.h:30