UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
MovieSceneTrackImplementation.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
6#include "CoreMinimal.h"
7#include "CoreTypes.h"
13#include "Misc/InlineValue.h"
14#include "Templates/Decay.h"
15#include "Templates/EnableIf.h"
19#include "UObject/Class.h"
21
22#include "MovieSceneTrackImplementation.generated.h"
23
24class FArchive;
26class UObject;
32
36USTRUCT()
38{
39public:
41
42
48
53 {
54 return (OverrideMask & CustomInitializeFlag) != 0;
55 }
56
60 bool HasCustomEvaluate() const
61 {
62 return (OverrideMask & CustomEvaluateFlag) != 0;
63 }
64
78 {
79 ensureMsgf(false, TEXT("FMovieSceneTrackImplementation::Initialize has not been implemented. Did you erroneously call EnableOverrides(CustomInitializeFlag)?"));
80 }
81
96 {
97 ensureMsgf(false, TEXT("FMovieSceneTrackImplementation::Evaluate has not been implemented. Did you erroneously call EnableOverrides(CustomEvaluateFlag)?"));
98 }
99
108 {
109 return false;
110 }
111
112protected:
113
118 {
119 CustomInitializeFlag = 0x004,
120 CustomEvaluateFlag = 0x008,
121 };
122};
123
125USTRUCT()
127#if CPP
129#endif
130{
132
133
135
137 template<
138 typename T,
140 >
142 : TInlineValue(Forward<T>(In))
143 {
144 static_assert(!std::is_same_v<typename TDecay<T>::Type, FMovieSceneTrackImplementation>, "Direct usage of FMovieSceneTrackImplementation is prohibited.");
145
146#if WITH_EDITOR
147 checkf(T::StaticStruct() == &In.GetScriptStruct() && T::StaticStruct() != FMovieSceneTrackImplementation::StaticStruct(), TEXT("%s type does not correctly override GetScriptStructImpl. Track will not serialize correctly."), *T::StaticStruct()->GetName());
148#endif
149 }
150
157 {
158 if (RHS.IsValid())
159 {
160 UScriptStruct::ICppStructOps& StructOps = *RHS->GetScriptStruct().GetCppStructOps();
161
162 void* Allocation = Reserve(StructOps.GetSize(), StructOps.GetAlignment());
163 StructOps.Construct(Allocation);
164 StructOps.Copy(Allocation, &RHS.GetValue(), 1);
165 }
166 else
167 {
168 Reset();
169 }
170
171 return *this;
172 }
173
177
180};
181
182template<> struct TStructOpsTypeTraits<FMovieSceneTrackImplementationPtr> : public TStructOpsTypeTraitsBase2<FMovieSceneTrackImplementationPtr>
183{
184 enum { WithSerializer = true, WithCopy = true };
185};
#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
#define GENERATED_BODY(...)
Definition ObjectMacros.h:765
#define USTRUCT(...)
Definition ObjectMacros.h:746
Definition Archive.h:1208
Definition IMovieScenePlayer.h:90
Definition ArrayView.h:139
Definition EnableIf.h:20
Definition InlineValue.h:22
Definition Object.h:95
Definition MovieScenePlayback.h:184
Definition MovieSceneEvalTemplateBase.h:27
Definition MovieSceneEvaluationOperand.h:15
Definition MovieSceneEvaluationTrack.h:55
Definition MovieSceneExecutionTokens.h:35
Definition MovieSceneEvaluationField.h:544
Definition MovieSceneTemplateInterrogation.h:70
Definition MovieSceneTrackImplementation.h:130
FMovieSceneTrackImplementationPtr & operator=(const FMovieSceneTrackImplementationPtr &RHS)
Definition MovieSceneTrackImplementation.h:156
FMovieSceneTrackImplementationPtr(const FMovieSceneTrackImplementationPtr &RHS)
Definition MovieSceneTrackImplementation.h:152
FMovieSceneTrackImplementationPtr & operator=(FMovieSceneTrackImplementationPtr &&)=default
FMovieSceneTrackImplementationPtr(T &&In)
Definition MovieSceneTrackImplementation.h:141
FMovieSceneTrackImplementationPtr(FMovieSceneTrackImplementationPtr &&)=default
Definition MovieSceneTrackImplementation.h:38
EOverrideMask
Definition MovieSceneTrackImplementation.h:118
virtual void Initialize(const FMovieSceneEvaluationTrack &Track, TArrayView< const FMovieSceneFieldEntry_ChildTemplate > Children, const FMovieSceneEvaluationOperand &Operand, const FMovieSceneContext &Context, FPersistentEvaluationData &PersistentData, IMovieScenePlayer &Player) const
Definition MovieSceneTrackImplementation.h:77
virtual void Evaluate(const FMovieSceneEvaluationTrack &Track, TArrayView< const FMovieSceneFieldEntry_ChildTemplate > Children, const FMovieSceneEvaluationOperand &Operand, const FMovieSceneContext &Context, const FPersistentEvaluationData &PersistentData, FMovieSceneExecutionTokens &ExecutionTokens) const
Definition MovieSceneTrackImplementation.h:95
bool HasCustomInitialize() const
Definition MovieSceneTrackImplementation.h:52
virtual bool Interrogate(const FMovieSceneContext &Context, FMovieSceneInterrogationData &Container, UObject *BindingOverride=nullptr) const
Definition MovieSceneTrackImplementation.h:107
bool HasCustomEvaluate() const
Definition MovieSceneTrackImplementation.h:60
Definition PersistentEvaluationData.h:91
Definition StructOpsTypeTraits.h:11
@ WithCopy
Definition StructOpsTypeTraits.h:17
@ WithSerializer
Definition StructOpsTypeTraits.h:23
Definition StructOpsTypeTraits.h:46
Definition Class.h:1725