47 lines
1.7 KiB
C++
47 lines
1.7 KiB
C++
// Copyright Epic Games, Inc. All Rights Reserved.
|
|
|
|
#include "Systems/MovieSceneComponentTransformSystem.h"
|
|
#include "Systems/DoubleChannelEvaluatorSystem.h"
|
|
#include "Systems/MovieScenePiecewiseDoubleBlenderSystem.h"
|
|
#include "Systems/MovieScenePropertyInstantiator.h"
|
|
#include "Systems/MovieSceneQuaternionInterpolationRotationSystem.h"
|
|
|
|
#include "EntitySystem/BuiltInComponentTypes.h"
|
|
#include "EntitySystem/Interrogation/MovieSceneInterrogationLinker.h"
|
|
|
|
#include "MovieSceneTracksComponentTypes.h"
|
|
|
|
#include UE_INLINE_GENERATED_CPP_BY_NAME(MovieSceneComponentTransformSystem)
|
|
|
|
UMovieSceneComponentTransformSystem::UMovieSceneComponentTransformSystem(const FObjectInitializer& ObjInit)
|
|
: Super(ObjInit)
|
|
{
|
|
using namespace UE::MovieScene;
|
|
|
|
// This system can be used for interrogation
|
|
SystemCategories &= ~FSystemInterrogator::GetExcludedFromInterrogationCategory();
|
|
|
|
const FBuiltInComponentTypes* BuiltInComponents = FBuiltInComponentTypes::Get();
|
|
const FMovieSceneTracksComponentTypes* TrackComponents = FMovieSceneTracksComponentTypes::Get();
|
|
|
|
BindToProperty(TrackComponents->ComponentTransform);
|
|
|
|
if (HasAnyFlags(RF_ClassDefaultObject))
|
|
{
|
|
DefineImplicitPrerequisite(UMovieScenePiecewiseDoubleBlenderSystem::StaticClass(), GetClass());
|
|
|
|
DefineComponentConsumer(GetClass(), TrackComponents->ComponentTransform.PropertyTag);
|
|
|
|
for (int32 Index = 0; Index < UE_ARRAY_COUNT(BuiltInComponents->DoubleResult); ++Index)
|
|
{
|
|
DefineComponentConsumer(GetClass(), BuiltInComponents->DoubleResult[Index]);
|
|
}
|
|
}
|
|
}
|
|
|
|
void UMovieSceneComponentTransformSystem::OnRun(FSystemTaskPrerequisites& InPrerequisites, FSystemSubsequentTasks& Subsequents)
|
|
{
|
|
Super::OnRun(InPrerequisites, Subsequents);
|
|
}
|
|
|