Files
UnrealEngineUWP/Engine/Source/Runtime/MovieScene/Private/EntitySystem/IMovieSceneEntityProvider.cpp
aurel cordonnier 8eebe8841f Merge UE5/RET @ 16305968 to UE5/Main
This represents UE4/Main @ 16261013 and Dev-PerfTest @ 16259937

[CL 16306996 by aurel cordonnier in ue5-main branch]
2021-05-12 18:10:03 -04:00

62 lines
2.0 KiB
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#include "EntitySystem/IMovieSceneEntityProvider.h"
#include "EntitySystem/MovieSceneEntitySystemTask.h"
#include "EntitySystem/BuiltInComponentTypes.h"
#include "EntitySystem/MovieSceneEntityManager.h"
#include "Evaluation/MovieSceneEvaluationField.h"
#include "MovieSceneSection.h"
namespace UE
{
namespace MovieScene
{
FGuid FEntityImportParams::GetObjectBindingID() const
{
return SharedMetaData ? SharedMetaData->ObjectBindingID : FGuid();
}
FMovieSceneEntityID FImportedEntity::Manufacture(const FEntityImportParams& Params, FEntityManager* EntityManager)
{
using namespace MovieScene;
FBuiltInComponentTypes* Components = FBuiltInComponentTypes::Get();
auto BaseBuilder = FEntityBuilder()
.AddTag(Components->Tags.NeedsLink)
.AddTag(Components->Tags.ImportedEntity)
.AddConditional(Components->RootInstanceHandle, Params.Sequence.RootInstanceHandle, Params.Sequence.RootInstanceHandle.IsValid())
.AddConditional(Components->InstanceHandle, Params.Sequence.InstanceHandle, Params.Sequence.InstanceHandle.IsValid());
FComponentMask NewMask;
BaseBuilder.GenerateType(EntityManager, NewMask);
for (TInlineValue<IEntityBuilder>& Builder : Builders)
{
Builder->GenerateType(EntityManager, NewMask);
}
FEntityInfo NewEntity = EntityManager->AllocateEntity(NewMask);
BaseBuilder.Initialize(EntityManager, NewEntity);
for (TInlineValue<IEntityBuilder>& Builder : Builders)
{
Builder->Initialize(EntityManager, NewEntity);
}
return NewEntity.EntityID;
}
} // namespace MovieScene
} // namespace UE
void IMovieSceneEntityProvider::ImportEntity(UMovieSceneEntitySystemLinker* EntityLinker, const FEntityImportParams& Params, FImportedEntity* OutImportedEntity)
{
ImportEntityImpl(EntityLinker, Params, OutImportedEntity);
}
void IMovieSceneEntityProvider::InterrogateEntity(UMovieSceneEntitySystemLinker* EntityLinker, const FEntityImportParams& Params, FImportedEntity* OutImportedEntity)
{
InterrogateEntityImpl(EntityLinker, Params, OutImportedEntity);
}