UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
MovieSceneExecutionTokens.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
5#include "Containers/Array.h"
6#include "Containers/Map.h"
7#include "CoreMinimal.h"
16#include "HAL/Platform.h"
18#include "Misc/FrameRate.h"
19#include "Misc/FrameTime.h"
20#include "Misc/InlineValue.h"
22#include "MovieSceneFwd.h"
23#include "Templates/EnableIf.h"
27
29
30
35{
40
43
46
50 template<typename T>
52 {
53 check(Scope.Key.IsValid() && Operand.IsValid());
54 OrderedTokens.Add(FEntry(Operand, Scope, Context, Forward<T>(InToken)));
55 }
56
60 template<typename T>
62 {
63 checkf(!SharedTokens.Contains(ID), TEXT("Already added a shared token of this type"));
64 SharedTokens.Add(ID, MoveTemp(InToken));
65 }
66
71 {
72 auto* Existing = SharedTokens.Find(ID);
73 return Existing ? Existing->GetPtr() : nullptr;
74 }
75
76public:
77
83 {
84 return BlendingAccumulator;
85 }
86
92 {
93 return BlendingAccumulator;
94 }
95
103 template<typename ActuatorDataType>
105 {
106 BlendingAccumulator.BlendToken(Operand, InActuatorTypeID, Scope, Context, MoveTemp(InToken));
107 }
108
113
114public:
115
120 {
121 Operand = InOperand;
122 }
123
128 {
129 Scope = InScope;
130 }
131
136 {
137 Context = InContext;
138 }
139
144 {
145 return Scope;
146 }
147
148private:
149
150 struct FEntry
151 {
153 : Operand(InOperand)
154 , Scope(InScope)
155 , Context(InContext)
156 , Token(MoveTemp(InToken))
157 {
158 }
159
160 FEntry(FEntry&&) = default;
161 FEntry& operator=(FEntry&&) = default;
162
171 };
172
174 TArray<FEntry> OrderedTokens;
175
178
180 FMovieSceneBlendingAccumulator BlendingAccumulator;
181
187 FMovieSceneContext Context;
188};
#define check(expr)
Definition AssertionMacros.h:314
#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
UE_INTRINSIC_CAST UE_REWRITE constexpr std::remove_reference_t< T > && MoveTemp(T &&Obj) noexcept
Definition UnrealTemplate.h:520
Definition IMovieScenePlayer.h:90
Definition Array.h:670
UE_NODEBUG UE_FORCEINLINE_HINT SizeType Add(ElementType &&Item)
Definition Array.h:2696
Definition EnableIf.h:20
Definition InlineValue.h:22
Definition UnrealString.h.inl:34
Definition MovieSceneFwd.h:41
Definition FrameRate.h:21
Definition FrameTime.h:16
Definition MovieSceneBlendingAccumulator.h:26
void BlendToken(FMovieSceneBlendingActuatorID InActuatorTypeID, const FMovieSceneEvaluationScope &InScope, const FMovieSceneContext &InContext, TBlendableToken< ActuatorDataType > &&InToken)
Definition MovieSceneBlendingAccumulator.h:38
Definition MovieSceneBlendingActuatorID.h:8
Definition MovieScenePlayback.h:184
bool IsValid() const
Definition MovieSceneEvaluationKey.h:37
Definition MovieSceneEvaluationOperand.h:15
bool IsValid() const
Definition MovieSceneEvaluationOperand.h:38
Definition MovieScenePlayback.h:33
Definition MovieSceneEvaluationScope.h:10
FMovieSceneEvaluationKey Key
Definition MovieSceneEvaluationScope.h:23
Definition MovieSceneExecutionTokens.h:35
FMovieSceneExecutionTokens()
Definition MovieSceneExecutionTokens.h:36
FMovieSceneExecutionTokens(FMovieSceneExecutionTokens &&)=default
void SetCurrentScope(const FMovieSceneEvaluationScope &InScope)
Definition MovieSceneExecutionTokens.h:127
FMovieSceneEvaluationScope GetCurrentScope() const
Definition MovieSceneExecutionTokens.h:143
const FMovieSceneBlendingAccumulator & GetBlendingAccumulator() const
Definition MovieSceneExecutionTokens.h:91
FMovieSceneExecutionTokens & operator=(FMovieSceneExecutionTokens &&)=default
TEnableIf< TPointerIsConvertibleFromTo< typenameTRemoveReference< T >::Type, constIMovieSceneSharedExecutionToken >::Value >::Type AddShared(FMovieSceneSharedDataId ID, T &&InToken)
Definition MovieSceneExecutionTokens.h:61
void SetContext(const FMovieSceneContext &InContext)
Definition MovieSceneExecutionTokens.h:135
IMovieSceneSharedExecutionToken * FindShared(FMovieSceneSharedDataId ID)
Definition MovieSceneExecutionTokens.h:70
TEnableIf< TPointerIsConvertibleFromTo< typenameTRemoveReference< T >::Type, constIMovieSceneExecutionToken >::Value >::Type Add(T &&InToken)
Definition MovieSceneExecutionTokens.h:51
void BlendToken(FMovieSceneBlendingActuatorID InActuatorTypeID, TBlendableToken< ActuatorDataType > &&InToken)
Definition MovieSceneExecutionTokens.h:104
FMovieSceneExecutionTokens(const FMovieSceneExecutionTokens &)=delete
FMovieSceneBlendingAccumulator & GetBlendingAccumulator()
Definition MovieSceneExecutionTokens.h:82
void SetOperand(const FMovieSceneEvaluationOperand &InOperand)
Definition MovieSceneExecutionTokens.h:119
MOVIESCENE_API void Apply(const FMovieSceneContext &RootContext, IMovieScenePlayer &Player)
Definition MovieSceneExecutionTokens.cpp:16
FMovieSceneExecutionTokens & operator=(const FMovieSceneExecutionTokens &)=delete
Definition PersistentEvaluationData.h:23
Definition MovieSceneExecutionToken.h:104
Definition MovieSceneExecutionToken.h:111
Definition BlendableToken.h:100