34 lines
1.1 KiB
C++
34 lines
1.1 KiB
C++
// Copyright Epic Games, Inc. All Rights Reserved.
|
|
|
|
#include "Evaluation/PersistentEvaluationData.h"
|
|
#include "IMovieScenePlayer.h"
|
|
#include "Evaluation/MovieSceneEvaluationTemplateInstance.h"
|
|
#include "Compilation/MovieSceneCompiledDataManager.h"
|
|
|
|
FPersistentEvaluationData::FPersistentEvaluationData(IMovieScenePlayer& InPlayer)
|
|
: Player(InPlayer)
|
|
, EntityData(nullptr)
|
|
, SharedData(nullptr)
|
|
{
|
|
|
|
FMovieSceneEvaluationState* EvaluationState = Player.GetEvaluationState();
|
|
if (EvaluationState)
|
|
{
|
|
EntityData = &EvaluationState->PersistentEntityData;
|
|
SharedData = &EvaluationState->PersistentSharedData;
|
|
}
|
|
}
|
|
|
|
const FMovieSceneSequenceInstanceData* FPersistentEvaluationData::GetInstanceData() const
|
|
{
|
|
FMovieSceneRootEvaluationTemplateInstance& Instance = Player.GetEvaluationTemplate();
|
|
const FMovieSceneSequenceHierarchy* Hierarchy = Instance.GetCompiledDataManager()->FindHierarchy(Instance.GetCompiledDataID());
|
|
if (!Hierarchy)
|
|
{
|
|
return nullptr;
|
|
}
|
|
|
|
const FMovieSceneSubSequenceData* SubData = Hierarchy->FindSubData(TrackKey.SequenceID);
|
|
return SubData && SubData->InstanceData.IsValid() ? &SubData->InstanceData.GetValue() : nullptr;
|
|
}
|