UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
MovieSceneEvaluationKey.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"
8#include "MovieSceneEvaluationKey.generated.h"
9
11USTRUCT()
13{
15
16
20 : SequenceID(MovieSceneSequenceID::Invalid)
21 , TrackIdentifier(FMovieSceneTrackIdentifier::Invalid())
22 , SectionIndex(-1)
23 {}
24
33
37 bool IsValid() const
38 {
39 return SequenceID != MovieSceneSequenceID::Invalid && TrackIdentifier != FMovieSceneTrackIdentifier::Invalid();
40 }
41
46 {
47 FMovieSceneEvaluationKey NewKey = *this;
48 NewKey.SectionIndex = InSectionIdentifier;
49 return NewKey;
50 }
51
56 {
57 FMovieSceneEvaluationKey NewKey = *this;
58 NewKey.SectionIndex = uint32(-1);
59 return NewKey;
60 }
61
63 {
64 return A.TrackIdentifier == B.TrackIdentifier && A.SequenceID == B.SequenceID && A.SectionIndex == B.SectionIndex;
65 }
66
68 {
69 if (A.SequenceID < B.SequenceID)
70 {
71 return true;
72 }
73 else if (A.SequenceID > B.SequenceID)
74 {
75 return false;
76 }
77 else if (A.TrackIdentifier < B.TrackIdentifier)
78 {
79 return true;
80 }
81 else
82 {
83 return A.TrackIdentifier == B.TrackIdentifier && A.SectionIndex < B.SectionIndex;
84 }
85 }
86
88 {
89 return GetTypeHash(In.SequenceID) ^ (~GetTypeHash(In.TrackIdentifier)) ^ In.SectionIndex;
90 }
91
94 {
95 Ar << SequenceID;
96 Ar << TrackIdentifier;
97 Ar << SectionIndex;
98 return true;
99 }
100
102 {
103 Key.Serialize(Ar);
104 return Ar;
105 }
106
108 UPROPERTY()
110
112 UPROPERTY()
114
116 UPROPERTY()
117 uint32 SectionIndex;
118};
119
120template<>
122{
123 enum
124 {
125 WithSerializer = true, WithIdenticalViaEquality = true
126 };
127 static constexpr EPropertyObjectReferenceType WithSerializerObjectReferences = EPropertyObjectReferenceType::None;
128};
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
TCallTraits< FMovieSceneSequenceID >::ParamType FMovieSceneSequenceIDRef
Definition MovieSceneSequenceID.h:93
#define UPROPERTY(...)
UObject definition macros.
Definition ObjectMacros.h:744
#define GENERATED_BODY(...)
Definition ObjectMacros.h:765
#define USTRUCT(...)
Definition ObjectMacros.h:746
EPropertyObjectReferenceType
Definition ObjectMacros.h:533
uint32_t uint32
Definition binka_ue_file_header.h:6
Definition Archive.h:1208
Definition MovieSceneSequenceID.h:96
constexpr FMovieSceneSequenceID Invalid
Definition MovieSceneSequenceID.h:97
Definition MovieSceneEvaluationKey.h:13
friend uint32 GetTypeHash(const FMovieSceneEvaluationKey &In)
Definition MovieSceneEvaluationKey.h:87
uint32 SectionIndex
Definition MovieSceneEvaluationKey.h:117
friend bool operator==(const FMovieSceneEvaluationKey &A, const FMovieSceneEvaluationKey &B)
Definition MovieSceneEvaluationKey.h:62
friend bool operator<(const FMovieSceneEvaluationKey &A, const FMovieSceneEvaluationKey &B)
Definition MovieSceneEvaluationKey.h:67
bool IsValid() const
Definition MovieSceneEvaluationKey.h:37
bool Serialize(FArchive &Ar)
Definition MovieSceneEvaluationKey.h:93
FMovieSceneEvaluationKey(FMovieSceneSequenceIDRef InSequenceID, FMovieSceneTrackIdentifier InTrackIdentifier, uint32 InSectionIndex=uint32(-1))
Definition MovieSceneEvaluationKey.h:28
friend FArchive & operator<<(FArchive &Ar, FMovieSceneEvaluationKey &Key)
Definition MovieSceneEvaluationKey.h:101
FMovieSceneSequenceID SequenceID
Definition MovieSceneEvaluationKey.h:109
FMovieSceneEvaluationKey AsTrack() const
Definition MovieSceneEvaluationKey.h:55
FMovieSceneEvaluationKey AsSection(uint32 InSectionIdentifier) const
Definition MovieSceneEvaluationKey.h:45
FMovieSceneTrackIdentifier TrackIdentifier
Definition MovieSceneEvaluationKey.h:113
Definition MovieSceneSequenceID.h:13
Definition MovieSceneTrackIdentifier.h:12
static FMovieSceneTrackIdentifier Invalid()
Definition MovieSceneTrackIdentifier.h:19
Definition StructOpsTypeTraits.h:11
Definition StructOpsTypeTraits.h:46