You've already forked UnrealEngineUWP
mirror of
https://github.com/izzy2lost/UnrealEngineUWP.git
synced 2026-03-26 18:15:20 -07:00
- Add support for double precision channels, curves, evaluation, blending, and all other runtime infrastructure. - Note that, as usual for now, double channels load and save float values. - Editor side also gains some new track editors for these new types, with some workarounds to correctly recognize between float and double vectors. - Transform tracks are now operating entirely in doubles. - Float recomposing APIs for keying tracks in the editor are now using doubles, and have been renamed to "value recomposing". #rb max.chen #preflight 6123f6d9e7a3070001ff37ed [CL 17278174 by ludovic chabant in ue5-main branch]
54 lines
2.2 KiB
C++
54 lines
2.2 KiB
C++
// 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"
|
|
#include "Systems/DoubleChannelEvaluatorSystem.h"
|
|
#include "Systems/FloatChannelEvaluatorSystem.h"
|
|
#include "Systems/MovieScenePiecewiseDoubleBlenderSystem.h"
|
|
#include "Systems/MovieScenePiecewiseFloatBlenderSystem.h"
|
|
#include "Systems/MovieScenePropertyInstantiator.h"
|
|
|
|
UMovieSceneFloatVectorPropertySystem::UMovieSceneFloatVectorPropertySystem(const FObjectInitializer& ObjInit)
|
|
: Super(ObjInit)
|
|
{
|
|
SystemExclusionContext |= UE::MovieScene::EEntitySystemContext::Interrogation;
|
|
|
|
BindToProperty(UE::MovieScene::FMovieSceneTracksComponentTypes::Get()->FloatVector);
|
|
|
|
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());
|
|
}
|
|
}
|
|
|
|
void UMovieSceneFloatVectorPropertySystem::OnRun(FSystemTaskPrerequisites& InPrerequisites, FSystemSubsequentTasks& Subsequents)
|
|
{
|
|
Super::OnRun(InPrerequisites, Subsequents);
|
|
}
|
|
|
|
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);
|
|
}
|
|
|