UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
IMovieScenePropertyComponentHandler.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
9
10
14
15namespace UE
16{
17namespace MovieScene
18{
19
20struct FPropertyStats;
21struct FEntityAllocation;
22struct FInitialValueCache;
23struct FPropertyDefinition;
24struct IPreAnimatedStorage;
25struct FEntityComponentFilter;
26struct FUnpackedChannelValues;
27struct FSystemSubsequentTasks;
28struct FSystemTaskPrerequisites;
29struct FVariantPropertyTypeIndex;
30struct FValueDecompositionParams;
31struct FPreAnimatedStateExtension;
32struct FPropertyCompositeDefinition;
33
34class IEntitySystemScheduler;
35
38{
40 template<typename T>
41 FPropertyComponentView(T& InData) : Data(&InData), DataSizeof(sizeof(T)) {}
42
45
49 int32 Sizeof() const { return DataSizeof; }
50
54 template<typename T>
55 T& ReinterpretCast() const { check(sizeof(T) <= DataSizeof); return *static_cast<T*>(Data); }
56
57private:
58 void* Data;
59 int32 DataSizeof;
60};
61
64{
66 template<typename T>
67 FConstPropertyComponentView(const T& InData) : Data(&InData), DataSizeof(sizeof(T)) {}
68
71
75 int32 Sizeof() const { return DataSizeof; }
76
80 template<typename T>
81 const T& ReinterpretCast() const { check(sizeof(T) <= DataSizeof); return *static_cast<const T*>(Data); }
82
83private:
84 const void* Data;
85 int32 DataSizeof;
86};
87
88
91{
93 template<typename T, typename Allocator>
95 : Data(InRange.GetData())
96 , DataSizeof(sizeof(T))
97 , ArrayNum(InRange.Num())
98 {}
99
101 int32 Num() const
102 {
103 return ArrayNum;
104 }
105
107 int32 Sizeof() const
108 {
109 return DataSizeof;
110 }
111
113 template<typename T>
115 {
116 check(sizeof(T) == DataSizeof);
117 return MakeArrayView(static_cast<T*>(Data), ArrayNum);
118 }
119
122 {
123 check(Index < ArrayNum);
124 return FPropertyComponentView(static_cast<uint8*>(Data) + DataSizeof*Index, DataSizeof);
125 }
126
129 {
130 check(Index < ArrayNum);
131 return FConstPropertyComponentView(static_cast<uint8*>(Data) + DataSizeof*Index, DataSizeof);
132 }
133
134private:
135 void* Data;
136 int32 DataSizeof;
137 int32 ArrayNum;
138};
139
142{
144
150 virtual void Process(const FEntityAllocation* Allocation, const FComponentMask& AllocationType) = 0;
152 virtual void Finalize() = 0;
153};
154
157{
159
160 virtual bool SupportsProperty(const FPropertyDefinition& Definition, const FProperty& InProperty) const = 0;
163
176
187
195
207
219
230
235};
236
237
238} // namespace MovieScene
239} // namespace UE
240
241
constexpr auto MakeArrayView(OtherRangeType &&Other)
Definition ArrayView.h:873
#define check(expr)
Definition AssertionMacros.h:314
FPlatformTypes::int32 int32
A 32-bit signed integer.
Definition Platform.h:1125
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
auto GetData(const TStringConversion< Converter, DefaultConversionSize > &Conversion) -> decltype(Conversion.Get())
Definition StringConv.h:802
uint8_t uint8
Definition binka_ue_file_header.h:8
Definition UnrealType.h:174
Definition MovieScene.Build.cs:6
Definition ArrayView.h:139
Definition Array.h:670
Definition SharedPointer.h:692
Definition IMovieSceneTaskScheduler.h:162
Definition MovieSceneBlenderSystem.h:45
Definition MovieSceneEntitySystemLinker.h:113
Definition MovieSceneSection.h:243
Definition Linker.cpp:38
Definition AdvancedWidgetsModule.cpp:13
U16 Index
Definition radfft.cpp:71
Definition MovieSceneEntityIDs.h:40
Definition IMovieScenePropertyComponentHandler.h:64
FConstPropertyComponentView(const T &InData)
Definition IMovieScenePropertyComponentHandler.h:67
int32 Sizeof() const
Definition IMovieScenePropertyComponentHandler.h:75
FConstPropertyComponentView(const void *InData, int32 InDataSizeof)
Definition IMovieScenePropertyComponentHandler.h:70
const T & ReinterpretCast() const
Definition IMovieScenePropertyComponentHandler.h:81
Definition MovieSceneEntitySystemTypes.h:624
Definition MovieSceneEntitySystemTypes.h:295
Definition MovieSceneInitialValueCache.h:56
Definition MovieSceneIntermediatePropertyValue.h:228
Definition MovieSceneIntermediatePropertyValue.h:312
Definition MovieScenePreAnimatedStateExtension.h:73
Definition IMovieScenePropertyComponentHandler.h:91
FPropertyComponentArrayView(TArray< T, Allocator > &InRange)
Definition IMovieScenePropertyComponentHandler.h:94
TArrayView< T > ReinterpretCast() const
Definition IMovieScenePropertyComponentHandler.h:114
int32 Sizeof() const
Definition IMovieScenePropertyComponentHandler.h:107
FPropertyComponentView operator[](int32 Index)
Definition IMovieScenePropertyComponentHandler.h:121
int32 Num() const
Definition IMovieScenePropertyComponentHandler.h:101
FConstPropertyComponentView operator[](int32 Index) const
Definition IMovieScenePropertyComponentHandler.h:128
Definition IMovieScenePropertyComponentHandler.h:38
FPropertyComponentView(void *InData, int32 InDataSizeof)
Definition IMovieScenePropertyComponentHandler.h:44
T & ReinterpretCast() const
Definition IMovieScenePropertyComponentHandler.h:55
int32 Sizeof() const
Definition IMovieScenePropertyComponentHandler.h:49
FPropertyComponentView(T &InData)
Definition IMovieScenePropertyComponentHandler.h:41
Definition MovieScenePropertyRegistry.h:66
Definition MovieScenePropertyRegistry.h:53
Definition MovieSceneIntermediatePropertyValue.h:131
Definition MovieSceneSystemTaskDependencies.h:98
Definition MovieSceneSystemTaskDependencies.h:29
Definition MovieSceneUnpackedChannelValues.h:159
Definition MovieSceneDecompositionQuery.h:178
Definition IMovieScenePropertyComponentHandler.h:142
virtual void PopulateFilter(FEntityComponentFilter &OutFilter) const =0
virtual ~IInitialValueProcessor()
Definition IMovieScenePropertyComponentHandler.h:143
virtual void Process(const FEntityAllocation *Allocation, const FComponentMask &AllocationType)=0
virtual void Initialize(UMovieSceneEntitySystemLinker *Linker, FInitialValueCache *InitialValueCache)=0
Definition IMovieScenePropertyComponentHandler.h:157
virtual void RebuildOperational(const FPropertyDefinition &Definition, TArrayView< const FPropertyCompositeDefinition > Composites, const TArrayView< FMovieSceneEntityID > &EntityIDs, UMovieSceneEntitySystemLinker *Linker, FPropertyComponentArrayView OutResult)=0
virtual void DispatchInitializePropertyMetaDataTasks(const FPropertyDefinition &Definition, FSystemTaskPrerequisites &InPrerequisites, FSystemSubsequentTasks &Subsequents, UMovieSceneEntitySystemLinker *Linker)
Definition IMovieScenePropertyComponentHandler.h:186
virtual void ScheduleSetterTasks(const FPropertyDefinition &Definition, TArrayView< const FPropertyCompositeDefinition > Composites, const FPropertyStats &Stats, IEntitySystemScheduler *TaskScheduler, UMovieSceneEntitySystemLinker *Linker)=0
virtual bool SupportsProperty(const FPropertyDefinition &Definition, const FProperty &InProperty) const =0
virtual TSharedPtr< IInitialValueProcessor > MakeInitialValueProcessor(const FPropertyDefinition &Definition)=0
virtual void RecomposeBlendChannel(const FPropertyDefinition &Definition, TArrayView< const FPropertyCompositeDefinition > Composites, int32 CompositeIndex, const FValueDecompositionParams &Params, UMovieSceneBlenderSystem *Blender, double InCurrentValue, TArrayView< double > OutResults)=0
virtual ~IPropertyComponentHandler()
Definition IMovieScenePropertyComponentHandler.h:158
virtual void UnpackChannels(const FPropertyDefinition &Definition, const FProperty &Property, const FIntermediatePropertyValueConstRef &Value, FUnpackedChannelValues &OutUnpackedValues) const =0
virtual TSharedPtr< IPreAnimatedStorage > GetPreAnimatedStateStorage(const FPropertyDefinition &Definition, FPreAnimatedStateExtension *Container)
Definition IMovieScenePropertyComponentHandler.h:194
virtual void DispatchSetterTasks(const FPropertyDefinition &Definition, TArrayView< const FPropertyCompositeDefinition > Composites, const FPropertyStats &Stats, FSystemTaskPrerequisites &InPrerequisites, FSystemSubsequentTasks &Subsequents, UMovieSceneEntitySystemLinker *Linker)=0
virtual void RecomposeBlendOperational(const FPropertyDefinition &Definition, TArrayView< const FPropertyCompositeDefinition > Composites, const FValueDecompositionParams &Params, UMovieSceneBlenderSystem *Blender, const FIntermediatePropertyValueConstRef &InCurrentValue, TArrayView< FIntermediatePropertyValue > OutResult)=0
virtual FIntermediatePropertyValue CoercePropertyValue(const FPropertyDefinition &Definition, const FProperty &InProperty, const FSourcePropertyValue &InPropertyValue) const =0