UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
ToolCommandChangeSequence.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
6
7
8// This class may be unnecessary, as multiple FChange can be combined in a single transaction.
9// Revisit usage in MeshSelectionTool.
10
17{
18protected:
24
26
27public:
31
34 {
36 Elem->TargetObject = Target;
37 Elem->Change = MoveTemp(Change);
38 Sequence.Add(Elem);
39 }
40
42 virtual void Apply(UObject* Object) override
43 {
44 for (int k = 0; k < Sequence.Num(); ++k)
45 {
47 check(Elem->TargetObject.IsValid());
48 if (Elem->TargetObject.IsValid())
49 {
50 Elem->Change->Apply(Elem->TargetObject.Get());
51 }
52 }
53 }
54
56 virtual void Revert(UObject* Object) override
57 {
58 for (int k = Sequence.Num() - 1; k >= 0; --k)
59 {
61 check(Elem->TargetObject.IsValid());
62 if (Elem->TargetObject.IsValid())
63 {
64 Elem->Change->Revert(Elem->TargetObject.Get());
65 }
66 }
67 }
68
70 virtual FString ToString() const override
71 {
72 FString Result = TEXT("FCommandChangeSequence: ");
73 for (int k = 0; k < Sequence.Num(); ++k)
74 {
75 Result = Result + Sequence[k]->Change->ToString() + TEXT(" ");
76 }
77 return Result;
78 }
79};
80
#define check(expr)
Definition AssertionMacros.h:314
#define TEXT(x)
Definition Platform.h:1272
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
UE_INTRINSIC_CAST UE_REWRITE constexpr std::remove_reference_t< T > && MoveTemp(T &&Obj) noexcept
Definition UnrealTemplate.h:520
Definition ToolCommandChangeSequence.h:17
virtual void Apply(UObject *Object) override
Definition ToolCommandChangeSequence.h:42
virtual FString ToString() const override
Definition ToolCommandChangeSequence.h:70
FToolCommandChangeSequence()
Definition ToolCommandChangeSequence.h:28
virtual void Revert(UObject *Object) override
Definition ToolCommandChangeSequence.h:56
void AppendChange(UObject *Target, TUniquePtr< FToolCommandChange > Change)
Definition ToolCommandChangeSequence.h:33
TArray< TSharedPtr< FChangeElem > > Sequence
Definition ToolCommandChangeSequence.h:25
Definition InteractiveToolChange.h:18
Definition Array.h:670
Definition SharedPointer.h:692
Definition UniquePtr.h:107
Definition Object.h:95
Definition ToolCommandChangeSequence.h:20
TUniquePtr< FToolCommandChange > Change
Definition ToolCommandChangeSequence.h:22
TWeakObjectPtr< UObject > TargetObject
Definition ToolCommandChangeSequence.h:21
Definition WeakObjectPtrTemplates.h:25