UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
MovieSceneDecompositionQuery.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
6#include "Containers/Array.h"
11#include "HAL/Platform.h"
12#include "Templates/Tuple.h"
14#include "UObject/Interface.h"
17
18#include "MovieSceneDecompositionQuery.generated.h"
19
20class UObject;
21
22namespace UE
23{
24namespace MovieScene
25{
26
43
46 {
48 double Value = 0.f;
50 float Weight = 0.f;
52 double BaseValue = 0.f;
56 bool bIsAdditive = true;
58 double Get() const
59 {
60 return (Value - BaseValue) * Weight;
61 }
62 bool operator<(const FWeightedValue& RHS) const
63 {
64 return BlendingOrder < RHS.BlendingOrder;
65 }
66 };
67
70 {
72 double Total = 0.f;
74 float TotalWeight = 0.f;
75
77 FORCENOINLINE double Normalize() const
78 {
79 return TotalWeight != 0.f ? Total / TotalWeight : Total;
80 }
81
84 {
85 Total += Other.Get();
86 TotalWeight += Other.Weight;
87 return *this;
88 }
106 };
107
115 {
116 struct FResult
117 {
120
122 double Additive = 0.f;
123 };
124
127
137
138
149 MOVIESCENE_API double Recompose(FMovieSceneEntityID EntityID, double CurrentValue, const double* InitialValue) const;
150
151 private:
152 enum class EDecomposedValueBlendType
153 {
154 Absolute,
155 Additive,
157 Override,
158 };
159
164 void Decompose(
165 FMovieSceneEntityID EntityID,
166 FWeightedValue& ThisValue, EDecomposedValueBlendType& OutBlendType,
167 FAccumulatedWeightedValue& Absolutes,
168 FAccumulatedWeightedValue& Additives) const;
169 };
170
171 // Align results to cache lines so there's no contention between cores
173 {
174 FDecomposedValue Value;
176
185
186 template<typename PropertyType>
188 {
190 {
191 while (--Num >= 0)
192 {
193 Values.Add(InCurrentValue);
194 }
195 }
196
198 };
199
204
205} // namespace MovieScene
206} // namespace UE
207
208
209UINTERFACE(MinimalAPI)
211{
212public:
214};
215
217{
218public:
220
221 virtual FGraphEventRef DispatchDecomposeTask(const UE::MovieScene::FValueDecompositionParams& Params, UE::MovieScene::FAlignedDecomposedValue* Output) = 0;
222};
#define FORCENOINLINE
Definition AndroidPlatform.h:142
#define GCC_ALIGN(n)
Definition AndroidPlatform.h:163
@ INDEX_NONE
Definition CoreMiscDefines.h:150
FPlatformTypes::int32 int32
A 32-bit signed integer.
Definition Platform.h:1125
#define PLATFORM_CACHE_LINE_SIZE
Definition Platform.h:938
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
@ Num
Definition MetalRHIPrivate.h:234
#define GENERATED_BODY(...)
Definition ObjectMacros.h:765
#define UINTERFACE(...)
Definition ObjectMacros.h:780
#define Absolute(a)
Definition Predicates.inl:150
uint16_t uint16
Definition binka_ue_file_header.h:7
Definition MovieSceneDecompositionQuery.h:217
Definition MovieScene.Build.cs:6
Definition ArrayView.h:139
Definition Array.h:670
Definition Interface.h:19
Definition MovieSceneDecompositionQuery.h:211
Definition Object.h:95
Definition AdvancedWidgetsModule.cpp:13
Definition MovieSceneDecompositionQuery.h:70
FORCENOINLINE double Normalize() const
Definition MovieSceneDecompositionQuery.h:77
FORCENOINLINE FAccumulatedWeightedValue Accumulate(const FAccumulatedWeightedValue &Other) const
Definition MovieSceneDecompositionQuery.h:102
double Total
Definition MovieSceneDecompositionQuery.h:72
float TotalWeight
Definition MovieSceneDecompositionQuery.h:74
FORCENOINLINE FAccumulatedWeightedValue & AccumulateThis(const FAccumulatedWeightedValue &Other)
Definition MovieSceneDecompositionQuery.h:90
FORCENOINLINE FAccumulatedWeightedValue & AccumulateThis(const FWeightedValue &Other)
Definition MovieSceneDecompositionQuery.h:83
FORCENOINLINE FAccumulatedWeightedValue Accumulate(const FWeightedValue &Other) const
Definition MovieSceneDecompositionQuery.h:97
Definition MovieSceneEntityIDs.h:174
Definition MovieSceneDecompositionQuery.h:117
double Additive
Definition MovieSceneDecompositionQuery.h:122
FAccumulatedWeightedValue Absolute
Definition MovieSceneDecompositionQuery.h:119
Definition MovieSceneDecompositionQuery.h:115
TArray< TTuple< FMovieSceneEntityID, FWeightedValue > > DecomposedAdditives
Definition MovieSceneDecompositionQuery.h:135
TArray< TTuple< FMovieSceneEntityID, FWeightedValue > > DecomposedAbsolutes
Definition MovieSceneDecompositionQuery.h:134
FResult Result
Definition MovieSceneDecompositionQuery.h:126
MOVIESCENE_API double Recompose(FMovieSceneEntityID EntityID, double CurrentValue, const double *InitialValue) const
Definition MovieSceneDecompositionQuery.cpp:73
TArray< FWeightedValue > AllDecomposedOverrides
Definition MovieSceneDecompositionQuery.h:129
TArray< TTuple< FMovieSceneEntityID, FWeightedValue > > DecomposedOverrides
Definition MovieSceneDecompositionQuery.h:136
Definition MovieSceneDecompositionQuery.h:33
UObject * Object
Definition MovieSceneDecompositionQuery.h:41
bool bConvertFromSourceEntityIDs
Definition MovieSceneDecompositionQuery.h:38
TArrayView< const FMovieSceneEntityID > Entities
Definition MovieSceneDecompositionQuery.h:35
Definition MovieSceneEntityIDs.h:302
Definition MovieSceneDecompositionQuery.h:201
TArray< FIntermediatePropertyValue, TInlineAllocator< 1 > > Values
Definition MovieSceneDecompositionQuery.h:202
Definition MovieSceneDecompositionQuery.h:178
FDecompositionQuery Query
Definition MovieSceneDecompositionQuery.h:179
FComponentTypeID PropertyTag
Definition MovieSceneDecompositionQuery.h:183
FComponentTypeID ResultComponentType
Definition MovieSceneDecompositionQuery.h:182
FMovieSceneEntityID PropertyEntityID
Definition MovieSceneDecompositionQuery.h:181
uint16 DecomposeBlendChannel
Definition MovieSceneDecompositionQuery.h:180
Definition MovieSceneDecompositionQuery.h:46
bool bIsAdditive
Definition MovieSceneDecompositionQuery.h:56
double BaseValue
Definition MovieSceneDecompositionQuery.h:52
bool operator<(const FWeightedValue &RHS) const
Definition MovieSceneDecompositionQuery.h:62
int32 BlendingOrder
Definition MovieSceneDecompositionQuery.h:54
double Value
Definition MovieSceneDecompositionQuery.h:48
float Weight
Definition MovieSceneDecompositionQuery.h:50
double Get() const
Definition MovieSceneDecompositionQuery.h:58
Definition MovieSceneDecompositionQuery.h:188
TRecompositionResult(const PropertyType &InCurrentValue, int32 Num)
Definition MovieSceneDecompositionQuery.h:189
TArray< PropertyType, TInlineAllocator< 1 > > Values
Definition MovieSceneDecompositionQuery.h:197