UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
MovieSceneEvaluationTemplate.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
6#include "Containers/Map.h"
7#include "Containers/Set.h"
9#include "CoreMinimal.h"
10#include "CoreTypes.h"
15#include "Misc/Guid.h"
17#include "MovieSceneTrack.h"
19#include "UObject/Class.h"
24
25#include "MovieSceneEvaluationTemplate.generated.h"
26
31
32
33
34USTRUCT()
36{
38
39public:
40
44 MOVIESCENE_API FMovieSceneTrackIdentifier FindTrackIdentifier(const FGuid& InSignature) const;
45
50
55 {
56 return SubSectionRanges.Contains(InSignature);
57 }
58
59public:
60
61 UPROPERTY()
62 FMovieSceneTrackIdentifier LastTrackIdentifier;
63
65 UPROPERTY()
66 TMap<FGuid, FMovieSceneTrackIdentifier> TrackSignatureToTrackIdentifier;
67
69 UPROPERTY()
70 TMap<FGuid, FMovieSceneFrameRange> SubSectionRanges;
71};
73
75USTRUCT()
77{
79
81
83
85 {
86 return Ar << In.Section << In.ObjectBindingId << In.Flags;
87 }
88
90 {
91 return A.Section == B.Section && A.ObjectBindingId == B.ObjectBindingId && A.Flags == B.Flags;
92 }
93
95 UPROPERTY()
97
99 UPROPERTY()
100 FGuid ObjectBindingId;
101
103 UPROPERTY()
105};
106
111USTRUCT()
154
158USTRUCT()
160{
162
163public:
164
169 {
170 // Fast, most common path
171 if (FMovieSceneEvaluationTrack* Track = Tracks.Find(Identifier))
172 {
173 return Track;
174 }
175
176 return StaleTracks.Find(Identifier);
177 }
178
183 {
184 // Fast, most common path
185 if (const FMovieSceneEvaluationTrack* Track = Tracks.Find(Identifier))
186 {
187 return Track;
188 }
189
190 return StaleTracks.Find(Identifier);
191 }
192
197 {
198 return FindTrack(TemplateLedger.FindTrackIdentifier(InSignature));
199 }
200
205 {
206 return FindTrack(TemplateLedger.FindTrackIdentifier(InSignature));
207 }
208
213 {
214 return StaleTracks.Contains(Identifier);
215 }
216
221
226
231
238
243
247#if WITH_EDITORONLY_DATA
248 MOVIESCENE_API void PostSerialize(const FArchive& Ar);
249#endif
250
255 {
256 StaleTracks.Reset();
257 }
258
259public:
260
265 {
266 return TemplateLedger;
267 }
268
273private:
274
276 UPROPERTY()
278
281
282public:
283
284 UPROPERTY()
286
288 UPROPERTY()
290
291private:
292
293 UPROPERTY()
295
296};
297#if WITH_EDITORONLY_DATA
298template<> struct TStructOpsTypeTraits<FMovieSceneEvaluationTemplate> : public TStructOpsTypeTraitsBase2<FMovieSceneEvaluationTemplate> { enum { WithPostSerialize = true }; };
299#endif
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
ESectionEvaluationFlags
Definition MovieSceneSegment.h:19
#define UPROPERTY(...)
UObject definition macros.
Definition ObjectMacros.h:744
#define GENERATED_BODY(...)
Definition ObjectMacros.h:765
#define USTRUCT(...)
Definition ObjectMacros.h:746
uint32_t uint32
Definition binka_ue_file_header.h:6
Definition Archive.h:1208
Definition UnrealString.h.inl:34
Definition MovieSceneSequence.h:73
Definition MovieSceneSubSection.h:96
Definition Guid.h:109
Definition MovieSceneEvaluationTemplate.h:113
void Increment()
Definition MovieSceneEvaluationTemplate.h:131
uint32 GetValue() const
Definition MovieSceneEvaluationTemplate.h:123
Definition MovieSceneEvaluationTemplate.h:160
FMovieSceneEvaluationTrack * FindTrack(FMovieSceneTrackIdentifier Identifier)
Definition MovieSceneEvaluationTemplate.h:168
MOVIESCENE_API const TMap< FMovieSceneTrackIdentifier, FMovieSceneEvaluationTrack > & GetStaleTracks() const
Definition MovieSceneEvaluationTemplate.cpp:121
MOVIESCENE_API const TMap< FMovieSceneTrackIdentifier, FMovieSceneEvaluationTrack > & GetTracks() const
Definition MovieSceneEvaluationTemplate.cpp:111
FMovieSceneEvaluationTrack * FindTrack(const FGuid &InSignature)
Definition MovieSceneEvaluationTemplate.h:196
FMovieSceneEvaluationTemplateSerialNumber TemplateSerialNumber
Definition MovieSceneEvaluationTemplate.h:289
MOVIESCENE_API FMovieSceneTrackIdentifier AddTrack(const FGuid &InSignature, FMovieSceneEvaluationTrack &&InTrack)
Definition MovieSceneEvaluationTemplate.cpp:42
FGuid SequenceSignature
Definition MovieSceneEvaluationTemplate.h:285
bool IsTrackStale(FMovieSceneTrackIdentifier Identifier) const
Definition MovieSceneEvaluationTemplate.h:212
void PurgeStaleTracks()
Definition MovieSceneEvaluationTemplate.h:254
const FMovieSceneTemplateGenerationLedger & GetLedger() const
Definition MovieSceneEvaluationTemplate.h:264
const FMovieSceneEvaluationTrack * FindTrack(FMovieSceneTrackIdentifier Identifier) const
Definition MovieSceneEvaluationTemplate.h:182
void RemoveStaleData(const TSet< FGuid > &ActiveSignatures)
Definition MovieSceneEvaluationTemplate.cpp:71
const FMovieSceneEvaluationTrack * FindTrack(const FGuid &InSignature) const
Definition MovieSceneEvaluationTemplate.h:204
Definition MovieSceneEvaluationTrack.h:55
Definition MovieSceneFrameMigration.h:28
Definition MovieSceneEvaluationTemplate.h:77
ESectionEvaluationFlags Flags
Definition MovieSceneEvaluationTemplate.h:104
friend FArchive & operator<<(FArchive &Ar, FMovieSceneSubSectionData &In)
Definition MovieSceneEvaluationTemplate.h:84
TWeakObjectPtr< UMovieSceneSubSection > Section
Definition MovieSceneEvaluationTemplate.h:96
friend bool operator==(const FMovieSceneSubSectionData &A, const FMovieSceneSubSectionData &B)
Definition MovieSceneEvaluationTemplate.h:89
FGuid ObjectBindingId
Definition MovieSceneEvaluationTemplate.h:100
Definition MovieSceneEvaluationTemplate.h:36
bool ContainsSubSection(const FGuid &InSignature)
Definition MovieSceneEvaluationTemplate.h:54
Definition MovieSceneTrackIdentifier.h:12
Definition StructOpsTypeTraits.h:11
@ WithPostSerialize
Definition StructOpsTypeTraits.h:25
Definition StructOpsTypeTraits.h:46
Definition WeakObjectPtrTemplates.h:25