Files
UnrealEngine/Engine/Source/Runtime/MovieSceneTracks/Private/Sections/MovieSceneTextSection.cpp
Brandyn / Techy fcc1b09210 init
2026-04-04 15:40:51 -05:00

49 lines
1.7 KiB
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#include "Sections/MovieSceneTextSection.h"
#include "Channels/MovieSceneTextChannel.h"
#include "Tracks/MovieScenePropertyTrack.h"
#include UE_INLINE_GENERATED_CPP_BY_NAME(MovieSceneTextSection)
UMovieSceneTextSection::UMovieSceneTextSection(const FObjectInitializer& InObjectInitializer)
: Super(InObjectInitializer)
{
bSupportsInfiniteRange = true;
EvalOptions.EnableAndSetCompletionMode(EMovieSceneCompletionMode::ProjectDefault);
#if WITH_EDITOR
ChannelProxy = MakeShared<FMovieSceneChannelProxy>(TextChannel, FMovieSceneChannelMetaData(), TMovieSceneExternalValue<FText>::Make());
TextChannel.SetPackage(GetPackage());
#else
ChannelProxy = MakeShared<FMovieSceneChannelProxy>(TextChannel);
#endif
}
bool UMovieSceneTextSection::PopulateEvaluationFieldImpl(const TRange<FFrameNumber>& EffectiveRange
, const FMovieSceneEvaluationFieldEntityMetaData& InMetaData
, FMovieSceneEntityComponentFieldBuilder* OutFieldBuilder)
{
FMovieScenePropertyTrackEntityImportHelper::PopulateEvaluationField(*this, EffectiveRange, InMetaData, OutFieldBuilder);
return true;
}
void UMovieSceneTextSection::ImportEntityImpl(UMovieSceneEntitySystemLinker* EntityLinker
, const FEntityImportParams& Params
, FImportedEntity* OutImportedEntity)
{
using namespace UE::MovieScene;
if (!TextChannel.HasAnyData())
{
return;
}
const FBuiltInComponentTypes* Components = FBuiltInComponentTypes::Get();
const FMovieSceneTracksComponentTypes* TracksComponents = FMovieSceneTracksComponentTypes::Get();
FPropertyTrackEntityImportHelper(TracksComponents->Text)
.Add(Components->TextChannel, &TextChannel)
.Commit(this, Params, OutImportedEntity);
}