Files
UnrealEngine/Engine/Source/Runtime/MovieScene/Private/Evaluation/PreAnimatedState/MovieScenePreAnimatedCaptureSources.cpp
Brandyn / Techy fcc1b09210 init
2026-04-04 15:40:51 -05:00

83 lines
3.9 KiB
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#include "Evaluation/PreAnimatedState/MovieScenePreAnimatedCaptureSources.h"
#include "Evaluation/PreAnimatedState/MovieScenePreAnimatedStateExtension.h"
#include "Evaluation/PreAnimatedState/MovieSceneRestoreStateParams.h"
#include "Evaluation/PreAnimatedState/MovieScenePreAnimatedCaptureSources.inl"
#include "EntitySystem/TrackInstance/MovieSceneTrackInstance.h"
#include "Algo/Find.h"
namespace UE
{
namespace MovieScene
{
// Explicit, exported template instantiation for these classes
template struct TPreAnimatedCaptureSources<FObjectKey>;
template struct TPreAnimatedCaptureSources<FPreAnimatedEvaluationKeyType>;
template struct TPreAnimatedCaptureSources<FPreAnimatedEvalHookKeyType>;
template struct TPreAnimatedCaptureSources<FMovieSceneEntityID>;
FPreAnimatedEntityCaptureSource::FPreAnimatedEntityCaptureSource(FPreAnimatedStateExtension* InOwner)
: TPreAnimatedCaptureSources<FMovieSceneEntityID>(InOwner)
{}
void FPreAnimatedEntityCaptureSource::BeginTrackingEntity(const FPreAnimatedStateEntry& Entry, FMovieSceneEntityID EntityID, FRootInstanceHandle RootInstanceHandle, bool bWantsRestoreState)
{
FPreAnimatedStateMetaData MetaData{ Entry, RootInstanceHandle, bWantsRestoreState };
BeginTrackingCaptureSource(EntityID, MetaData);
}
FPreAnimatedTemplateCaptureSources::FPreAnimatedTemplateCaptureSources(FPreAnimatedStateExtension* InOwner)
: TPreAnimatedCaptureSources<FPreAnimatedEvaluationKeyType>(InOwner)
{}
EPreAnimatedCaptureSourceState FPreAnimatedTemplateCaptureSources::BeginTrackingCaptureSource(const FMovieSceneEvaluationKey& EvaluationKey, const FPreAnimatedStateMetaData& MetaData)
{
return TPreAnimatedCaptureSources<FPreAnimatedEvaluationKeyType>::BeginTrackingCaptureSource(FPreAnimatedEvaluationKeyType{ EvaluationKey, MetaData.RootInstanceHandle }, MetaData);
}
void FPreAnimatedTemplateCaptureSources::StopTrackingCaptureSource(const FMovieSceneEvaluationKey& EvaluationKey, FRootInstanceHandle RootInstanceHandle)
{
TPreAnimatedCaptureSources<FPreAnimatedEvaluationKeyType>::StopTrackingCaptureSource(FPreAnimatedEvaluationKeyType{ EvaluationKey, RootInstanceHandle });
}
FPreAnimatedEvaluationHookCaptureSources::FPreAnimatedEvaluationHookCaptureSources(FPreAnimatedStateExtension* InOwner)
: TPreAnimatedCaptureSources<FPreAnimatedEvalHookKeyType>(InOwner)
{}
EPreAnimatedCaptureSourceState FPreAnimatedEvaluationHookCaptureSources::BeginTrackingCaptureSource(const UObject* Hook, FMovieSceneSequenceID SequenceID, const FPreAnimatedStateMetaData& MetaData)
{
return TPreAnimatedCaptureSources<FPreAnimatedEvalHookKeyType>::BeginTrackingCaptureSource(FPreAnimatedEvalHookKeyType{ Hook, MetaData.RootInstanceHandle, SequenceID }, MetaData);
}
void FPreAnimatedEvaluationHookCaptureSources::StopTrackingCaptureSource(const UObject* Hook, FRootInstanceHandle RootInstanceHandle, FMovieSceneSequenceID SequenceID)
{
TPreAnimatedCaptureSources<FPreAnimatedEvalHookKeyType>::StopTrackingCaptureSource(FPreAnimatedEvalHookKeyType{ Hook, RootInstanceHandle, SequenceID });
}
FPreAnimatedTrackInstanceCaptureSources::FPreAnimatedTrackInstanceCaptureSources(FPreAnimatedStateExtension* InOwner)
: TPreAnimatedCaptureSources<FObjectKey>(InOwner)
{}
EPreAnimatedCaptureSourceState FPreAnimatedTrackInstanceCaptureSources::BeginTrackingCaptureSource(UMovieSceneTrackInstance* TrackInstance, const FPreAnimatedStateMetaData& MetaData)
{
FObjectKey Key(TrackInstance);
return TPreAnimatedCaptureSources<FObjectKey>::BeginTrackingCaptureSource(Key, MetaData);
}
void FPreAnimatedTrackInstanceCaptureSources::StopTrackingCaptureSource(UMovieSceneTrackInstance* TrackInstance)
{
FObjectKey Key(TrackInstance);
TPreAnimatedCaptureSources<FObjectKey>::StopTrackingCaptureSource(Key);
}
FPreAnimatedTrackInstanceInputCaptureSources::FPreAnimatedTrackInstanceInputCaptureSources(FPreAnimatedStateExtension* InOwner)
: TPreAnimatedCaptureSources<FMovieSceneTrackInstanceInput>(InOwner)
{}
} // namespace MovieScene
} // namespace UE