2021-03-18 15:20:03 -04:00
|
|
|
// Copyright Epic Games, Inc. All Rights Reserved.
|
|
|
|
|
|
|
|
|
|
#include "Systems/MovieSceneVectorPropertySystem.h"
|
|
|
|
|
#include "EntitySystem/MovieSceneBoundObjectInstantiator.h"
|
|
|
|
|
#include "EntitySystem/MovieSceneDecompositionQuery.h"
|
|
|
|
|
#include "EntitySystem/MovieSceneEntitySystemTypes.h"
|
|
|
|
|
#include "MovieSceneTracksComponentTypes.h"
|
2021-08-23 18:25:30 -04:00
|
|
|
#include "Systems/DoubleChannelEvaluatorSystem.h"
|
2021-03-18 15:20:03 -04:00
|
|
|
#include "Systems/FloatChannelEvaluatorSystem.h"
|
2021-08-23 18:25:30 -04:00
|
|
|
#include "Systems/MovieScenePiecewiseDoubleBlenderSystem.h"
|
2021-03-18 15:20:03 -04:00
|
|
|
#include "Systems/MovieScenePiecewiseFloatBlenderSystem.h"
|
|
|
|
|
#include "Systems/MovieScenePropertyInstantiator.h"
|
|
|
|
|
|
2021-08-23 18:25:30 -04:00
|
|
|
UMovieSceneFloatVectorPropertySystem::UMovieSceneFloatVectorPropertySystem(const FObjectInitializer& ObjInit)
|
2021-03-18 15:20:03 -04:00
|
|
|
: Super(ObjInit)
|
|
|
|
|
{
|
|
|
|
|
SystemExclusionContext |= UE::MovieScene::EEntitySystemContext::Interrogation;
|
|
|
|
|
|
2021-08-23 18:25:30 -04:00
|
|
|
BindToProperty(UE::MovieScene::FMovieSceneTracksComponentTypes::Get()->FloatVector);
|
2021-03-18 15:20:03 -04:00
|
|
|
|
|
|
|
|
if (HasAnyFlags(RF_ClassDefaultObject))
|
|
|
|
|
{
|
|
|
|
|
// We need our floats correctly evaluated and blended, so we are downstream from those systems.
|
|
|
|
|
DefineImplicitPrerequisite(UFloatChannelEvaluatorSystem::StaticClass(), GetClass());
|
|
|
|
|
DefineImplicitPrerequisite(UMovieScenePiecewiseFloatBlenderSystem::StaticClass(), GetClass());
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2021-08-23 18:25:30 -04:00
|
|
|
void UMovieSceneFloatVectorPropertySystem::OnRun(FSystemTaskPrerequisites& InPrerequisites, FSystemSubsequentTasks& Subsequents)
|
2021-03-18 15:20:03 -04:00
|
|
|
{
|
|
|
|
|
Super::OnRun(InPrerequisites, Subsequents);
|
|
|
|
|
}
|
2021-08-23 18:25:30 -04:00
|
|
|
|
|
|
|
|
UMovieSceneDoubleVectorPropertySystem::UMovieSceneDoubleVectorPropertySystem(const FObjectInitializer& ObjInit)
|
|
|
|
|
: Super(ObjInit)
|
|
|
|
|
{
|
|
|
|
|
SystemExclusionContext |= UE::MovieScene::EEntitySystemContext::Interrogation;
|
|
|
|
|
|
|
|
|
|
BindToProperty(UE::MovieScene::FMovieSceneTracksComponentTypes::Get()->DoubleVector);
|
|
|
|
|
|
|
|
|
|
if (HasAnyFlags(RF_ClassDefaultObject))
|
|
|
|
|
{
|
|
|
|
|
// We need our floats correctly evaluated and blended, so we are downstream from those systems.
|
|
|
|
|
DefineImplicitPrerequisite(UDoubleChannelEvaluatorSystem::StaticClass(), GetClass());
|
|
|
|
|
DefineImplicitPrerequisite(UMovieScenePiecewiseDoubleBlenderSystem::StaticClass(), GetClass());
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void UMovieSceneDoubleVectorPropertySystem::OnRun(FSystemTaskPrerequisites& InPrerequisites, FSystemSubsequentTasks& Subsequents)
|
|
|
|
|
{
|
|
|
|
|
Super::OnRun(InPrerequisites, Subsequents);
|
|
|
|
|
}
|
|
|
|
|
|