48 lines
1.8 KiB
C++
48 lines
1.8 KiB
C++
// Copyright Epic Games, Inc. All Rights Reserved.
|
|
|
|
#include "Evaluation/MovieScenePropertyTemplates.h"
|
|
#include "Sections/MovieSceneBoolSection.h"
|
|
#include "Sections/MovieSceneFloatSection.h"
|
|
#include "Sections/MovieSceneByteSection.h"
|
|
#include "Sections/MovieSceneEnumSection.h"
|
|
#include "Sections/MovieSceneIntegerSection.h"
|
|
#include "Sections/MovieSceneVectorSection.h"
|
|
#include "Sections/MovieScene3DTransformSection.h"
|
|
#include "Tracks/MovieScenePropertyTrack.h"
|
|
#include "MovieScene.h"
|
|
#include "Evaluation/MovieSceneEvaluation.h"
|
|
#include "MovieSceneTemplateCommon.h"
|
|
#include "Evaluation/Blending/MovieSceneMultiChannelBlending.h"
|
|
|
|
#include UE_INLINE_GENERATED_CPP_BY_NAME(MovieScenePropertyTemplates)
|
|
|
|
namespace
|
|
{
|
|
FName SanitizeBoolPropertyName(FName InPropertyName)
|
|
{
|
|
FString PropertyVarName = InPropertyName.ToString();
|
|
PropertyVarName.RemoveFromStart("b", ESearchCase::CaseSensitive);
|
|
return FName(*PropertyVarName);
|
|
}
|
|
}
|
|
|
|
// ----------------------------------------------------------------------------
|
|
// Boolean Property Template
|
|
FMovieSceneBoolPropertySectionTemplate::FMovieSceneBoolPropertySectionTemplate(const UMovieSceneBoolSection& Section, const UMovieScenePropertyTrack& Track)
|
|
: FMovieScenePropertySectionTemplate(Track.GetPropertyName(), Track.GetPropertyPath().ToString())
|
|
, BoolCurve(Section.GetChannel())
|
|
{
|
|
PropertyData.PropertyName = SanitizeBoolPropertyName(PropertyData.PropertyName);
|
|
}
|
|
|
|
void FMovieSceneBoolPropertySectionTemplate::Evaluate(const FMovieSceneEvaluationOperand& Operand, const FMovieSceneContext& Context, const FPersistentEvaluationData& PersistentData, FMovieSceneExecutionTokens& ExecutionTokens) const
|
|
{
|
|
// Only evaluate if the curve has any data
|
|
bool Result = false;
|
|
if (BoolCurve.Evaluate(Context.GetTime(), Result))
|
|
{
|
|
ExecutionTokens.Add(TPropertyTrackExecutionToken<bool>(Result));
|
|
}
|
|
}
|
|
|