UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
MovieSceneEvalTemplate.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
5#include "CoreMinimal.h"
6#include "CoreTypes.h"
12#include "Math/Range.h"
14#include "Misc/FrameNumber.h"
15#include "Misc/FrameTime.h"
16#include "Misc/InlineValue.h"
17#include "MovieSceneSection.h"
18#include "Templates/Decay.h"
19#include "Templates/EnableIf.h"
23#include "UObject/Class.h"
27
28#include "MovieSceneEvalTemplate.generated.h"
29
30class FArchive;
32class UObject;
36
45USTRUCT()
47{
48public:
50
51
58
65 {
66 return (OverrideMask & RequiresInitializeFlag) != 0;
67 }
68
75 {
76 return CompletionMode;
77 }
78
88
100 {
101 ensureMsgf(false, TEXT("FMovieSceneEvalTemplate::Initialize has not been implemented. Verify EnableOverrides() usage is correct or implement this function."));
102 }
103
116 {
117 ensureMsgf(false, TEXT("FMovieSceneEvalTemplate::Evaluate has not been implemented. Verify that this template's evaluation track has correct evaluation method (usually set in UMovieSceneTrack::PostCompile), or implement this function."));
118 }
119
133 {
134 ensureMsgf(false, TEXT("FMovieSceneEvalTemplate::EvaluateSwept has not been implemented. Verify that this template's evaluation track has correct evaluation method (usually set in UMovieSceneTrack::PostCompile), or implement this function."));
135 }
136
147
159
160public:
161
168 {
169 SourceSectionPtr = InSourceSection;
170 }
171
178 {
179 return SourceSectionPtr.Get();
180 }
181
182protected:
183
187 MOVIESCENE_API float EvaluateEasing(FFrameTime CurrentTime) const;
188
193 {
194 RequiresInitializeFlag = 0x004,
195 };
196
198 UPROPERTY()
200
202 UPROPERTY()
203 TWeakObjectPtr<const UMovieSceneSection> SourceSectionPtr;
204};
205
209USTRUCT()
211#if CPP
213#endif
214{
216
217
219
221 template<
222 typename T,
224 >
226 : TInlineValue(Forward<T>(In))
227 {
228 static_assert(!std::is_same_v<typename TDecay<T>::Type, FMovieSceneEvalTemplate>, "Direct usage of FMovieSceneEvalTemplate is prohibited.");
229
230#if WITH_EDITOR
231 checkf(T::StaticStruct() == &In.GetScriptStruct() && T::StaticStruct() != FMovieSceneEvalTemplate::StaticStruct(), TEXT("%s does not correctly override GetScriptStructImpl. Template will not serialize correctly."), *T::StaticStruct()->GetName());
232#endif
233 }
234
237 {
238 *this = RHS;
239 }
241 {
242 if (RHS.IsValid())
243 {
244 UScriptStruct::ICppStructOps& StructOps = *RHS->GetScriptStruct().GetCppStructOps();
245
246 void* Allocation = Reserve(StructOps.GetSize(), StructOps.GetAlignment());
247 StructOps.Construct(Allocation);
248 StructOps.Copy(Allocation, &RHS.GetValue(), 1);
249 }
250 else
251 {
252 Reset();
253 }
254
255 return *this;
256 }
257
261
264};
265
266template<> struct TStructOpsTypeTraits<FMovieSceneEvalTemplatePtr> : public TStructOpsTypeTraitsBase2<FMovieSceneEvalTemplatePtr>
267{
268 enum { WithSerializer = true, WithCopy = true };
269};
#define ensureMsgf( InExpression, InFormat,...)
Definition AssertionMacros.h:465
#define checkf(expr, format,...)
Definition AssertionMacros.h:315
#define TEXT(x)
Definition Platform.h:1272
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
EMovieSceneCompletionMode
Definition MovieSceneCompletionMode.h:10
#define UPROPERTY(...)
UObject definition macros.
Definition ObjectMacros.h:744
#define GENERATED_BODY(...)
Definition ObjectMacros.h:765
#define USTRUCT(...)
Definition ObjectMacros.h:746
Definition Archive.h:1208
Definition IMovieScenePlayer.h:90
Definition EnableIf.h:20
Definition InlineValue.h:22
Definition Range.h:50
Definition MovieSceneSection.h:243
Definition Object.h:95
Definition FrameTime.h:16
Definition MovieScenePlayback.h:184
Definition MovieSceneEvalTemplateBase.h:27
Definition MovieSceneEvalTemplate.h:214
FMovieSceneEvalTemplatePtr & operator=(FMovieSceneEvalTemplatePtr &&)=default
FMovieSceneEvalTemplatePtr & operator=(const FMovieSceneEvalTemplatePtr &RHS)
Definition MovieSceneEvalTemplate.h:240
FMovieSceneEvalTemplatePtr(FMovieSceneEvalTemplatePtr &&)=default
FMovieSceneEvalTemplatePtr(const FMovieSceneEvalTemplatePtr &RHS)
Definition MovieSceneEvalTemplate.h:236
FMovieSceneEvalTemplatePtr(T &&In)
Definition MovieSceneEvalTemplate.h:225
Definition MovieSceneEvalTemplate.h:47
virtual void Evaluate(const FMovieSceneEvaluationOperand &Operand, const FMovieSceneContext &Context, const FPersistentEvaluationData &PersistentData, FMovieSceneExecutionTokens &ExecutionTokens) const
Definition MovieSceneEvalTemplate.h:115
virtual void Interrogate(const FMovieSceneContext &Context, TRange< FFrameNumber > SweptRange, FMovieSceneInterrogationData &Container, UObject *BindingOverride) const
Definition MovieSceneEvalTemplate.h:156
bool RequiresInitialization() const
Definition MovieSceneEvalTemplate.h:64
virtual void Interrogate(const FMovieSceneContext &Context, FMovieSceneInterrogationData &Container, UObject *BindingOverride) const
Definition MovieSceneEvalTemplate.h:144
void SetSourceSection(const UMovieSceneSection *InSourceSection)
Definition MovieSceneEvalTemplate.h:167
EMovieSceneCompletionMode GetCompletionMode() const
Definition MovieSceneEvalTemplate.h:74
const UMovieSceneSection * GetSourceSection() const
Definition MovieSceneEvalTemplate.h:177
EOverrideMask
Definition MovieSceneEvalTemplate.h:193
virtual void Initialize(const FMovieSceneEvaluationOperand &Operand, const FMovieSceneContext &Context, FPersistentEvaluationData &PersistentData, IMovieScenePlayer &Player) const
Definition MovieSceneEvalTemplate.h:99
void SetCompletionMode(EMovieSceneCompletionMode InCompletionMode)
Definition MovieSceneEvalTemplate.h:84
virtual void EvaluateSwept(const FMovieSceneEvaluationOperand &Operand, const FMovieSceneContext &Context, const TRange< FFrameNumber > &SweptRange, const FPersistentEvaluationData &PersistentData, FMovieSceneExecutionTokens &ExecutionTokens) const
Definition MovieSceneEvalTemplate.h:132
Definition MovieSceneEvaluationOperand.h:15
Definition MovieSceneExecutionTokens.h:35
Definition MovieSceneTemplateInterrogation.h:70
Definition PersistentEvaluationData.h:91
Definition StructOpsTypeTraits.h:11
@ WithCopy
Definition StructOpsTypeTraits.h:17
@ WithSerializer
Definition StructOpsTypeTraits.h:23
Definition StructOpsTypeTraits.h:46
Definition WeakObjectPtrTemplates.h:25
Definition Class.h:1725