Files
michael balzer a49c74b915 MeshModelingToolset: Move ModelingOperators and ModelingOperatorsEditorOnly modules out of experimental plugin
#jira UETOOL-3823
#rb lonnie.li
#preflight 617b1aea5794a500014f544a

#ROBOMERGE-AUTHOR: michael.balzer
#ROBOMERGE-SOURCE: CL 17972239 in //UE5/Release-5.0/... via CL 17972248
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v885-17909292)
#ROBOMERGE[STARSHIP]: UE5-Main

[CL 17972256 by michael balzer in ue5-release-engine-test branch]
2021-10-28 19:47:45 -04:00

33 lines
847 B
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#pragma once
#include "CoreMinimal.h"
#include "InteractiveToolChange.h"
/**
* TSimpleValueLambdaChange is a generic FToolCommandChange that swaps between two (template-type) Values.
* The swap is applied via a lambda provided by the creator.
*/
template<typename ValueType>
class TSimpleValueLambdaChange : public FToolCommandChange
{
public:
ValueType FromValue;
ValueType ToValue;
TUniqueFunction<void(UObject*, const ValueType& From, const ValueType& To, bool bIsRevert)> ValueChangeFunc;
/** Makes the change to the object */
virtual void Apply(UObject* Object) override
{
ValueChangeFunc(Object, FromValue, ToValue, false);
}
/** Reverts change to the object */
virtual void Revert(UObject* Object) override
{
ValueChangeFunc(Object, ToValue, FromValue, true);
}
};