69 lines
2.2 KiB
C++
69 lines
2.2 KiB
C++
// Copyright Epic Games, Inc. All Rights Reserved.
|
|
|
|
#include "Evaluation/Blending/MovieSceneInitialValueStore.h"
|
|
#include "Evaluation/Blending/MovieSceneBlendingActuator.h"
|
|
|
|
struct FMovieSceneRemoveInitialValueToken : IMovieScenePreAnimatedToken
|
|
{
|
|
FMovieSceneRemoveInitialValueToken(TWeakPtr<IMovieSceneBlendingActuator> InWeakActuator)
|
|
: WeakActuator(InWeakActuator)
|
|
{}
|
|
|
|
virtual void RestoreState(UObject& Object, const UE::MovieScene::FRestoreStateParams& Params) override
|
|
{
|
|
TSharedPtr<IMovieSceneBlendingActuator> Store = WeakActuator.Pin();
|
|
if (Store.IsValid())
|
|
{
|
|
Store->RemoveInitialValueForObject(FObjectKey(&Object));
|
|
}
|
|
}
|
|
|
|
private:
|
|
/** The store to remove the initial value from */
|
|
TWeakPtr<IMovieSceneBlendingActuator> WeakActuator;
|
|
};
|
|
|
|
struct FMovieSceneRemoveInitialGlobalValueToken : IMovieScenePreAnimatedGlobalToken
|
|
{
|
|
FMovieSceneRemoveInitialGlobalValueToken(TWeakPtr<IMovieSceneBlendingActuator> InWeakActuator)
|
|
: WeakActuator(InWeakActuator)
|
|
{}
|
|
|
|
virtual void RestoreState(const UE::MovieScene::FRestoreStateParams& Params) override
|
|
{
|
|
TSharedPtr<IMovieSceneBlendingActuator> Store = WeakActuator.Pin();
|
|
if (Store.IsValid())
|
|
{
|
|
Store->RemoveInitialValueForObject(FObjectKey());
|
|
}
|
|
}
|
|
|
|
private:
|
|
/** The store to remove the initial value from */
|
|
TWeakPtr<IMovieSceneBlendingActuator> WeakActuator;
|
|
};
|
|
|
|
FMovieSceneRemoveInitialValueTokenProducer::FMovieSceneRemoveInitialValueTokenProducer(TWeakPtr<IMovieSceneBlendingActuator> InWeakActuator)
|
|
: WeakActuator(InWeakActuator)
|
|
{
|
|
}
|
|
|
|
FMovieSceneRemoveInitialValueTokenProducer::~FMovieSceneRemoveInitialValueTokenProducer() = default;
|
|
|
|
IMovieScenePreAnimatedTokenPtr FMovieSceneRemoveInitialValueTokenProducer::CacheExistingState(UObject& Object) const
|
|
{
|
|
return FMovieSceneRemoveInitialValueToken(WeakActuator);
|
|
}
|
|
|
|
FMovieSceneRemoveInitialGlobalValueTokenProducer::FMovieSceneRemoveInitialGlobalValueTokenProducer(TWeakPtr<IMovieSceneBlendingActuator> InWeakActuator)
|
|
: WeakActuator(InWeakActuator)
|
|
{
|
|
}
|
|
|
|
FMovieSceneRemoveInitialGlobalValueTokenProducer::~FMovieSceneRemoveInitialGlobalValueTokenProducer() = default;
|
|
|
|
IMovieScenePreAnimatedGlobalTokenPtr FMovieSceneRemoveInitialGlobalValueTokenProducer::CacheExistingState() const
|
|
{
|
|
return FMovieSceneRemoveInitialGlobalValueToken(WeakActuator);
|
|
}
|