UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
MovieSceneDecorationContainer.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
5#include "CoreTypes.h"
6#include "UObject/Interface.h"
9#include "MovieSceneDecorationContainer.generated.h"
10
11template <typename T> class TSubclassOf;
12
13USTRUCT()
15{
16public:
17
19
20
25 MOVIESCENE_API UObject* FindDecoration(const TSubclassOf<UObject>& InClass) const;
26
33
40
45 MOVIESCENE_API void RemoveDecoration(const TSubclassOf<UObject>& InClass, TFunctionRef<void(UObject*)> Event);
46
51
55 template<typename DecorationType>
57 {
58 UObject* Found = nullptr;
59
61 {
62 Found = FindDecoration(DecorationType::UClassType::StaticClass());
63 }
64 else
65 {
66 Found = FindDecoration(DecorationType::StaticClass());
67 }
68
70 }
71
76 template<typename DecorationType>
78 {
79 UObject* Found = GetOrCreateDecoration(DecorationType::StaticClass(), Event);
81 }
82
86 template<typename DecorationType>
88 {
89 RemoveDecoration(DecorationType::StaticClass());
90 }
91
96 {
97 Decorations.Remove(nullptr);
98 }
99
100protected:
101
102 UPROPERTY()
103 TArray<TObjectPtr<UObject>> Decorations;
104};
105
106
107UCLASS(DefaultToInstanced, MinimalAPI)
110{
112
113public:
114
121 {
122 return Decorations.FindDecoration(InClass);
123 }
124
125 MOVIESCENE_API void AddDecoration(UObject* InDecoration);
126
132 MOVIESCENE_API UObject* GetOrCreateDecoration(const TSubclassOf<UObject>& InClass);
133
138 MOVIESCENE_API void RemoveDecoration(const TSubclassOf<UObject>& InClass);
139
140
145 {
146 return Decorations.GetDecorations();
147 }
148
152 template<typename DecorationType>
154 {
155 return Decorations.FindDecoration<DecorationType>();
156 }
157
162 template<typename DecorationType>
164 {
165 return CastChecked<DecorationType>(GetOrCreateDecoration(DecorationType::StaticClass()));
166 }
167
171 template<typename DecorationType>
173 {
174 return RemoveDecoration(DecorationType::StaticClass());
175 }
176
181 {
182 GetCompatibleUserDecorationsImpl(OutClasses);
183 }
184
185protected:
186
187 virtual void OnDecorationAdded(UObject* Decoration)
188 {}
189
190 virtual void OnDecorationRemoved(UObject* Decoration)
191 {}
192
195
196protected:
197
198 MOVIESCENE_API virtual void Serialize(FArchive& Ar) override;
199
200protected:
201
203 UPROPERTY()
205};
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
#define UPROPERTY(...)
UObject definition macros.
Definition ObjectMacros.h:744
#define GENERATED_BODY(...)
Definition ObjectMacros.h:765
#define UCLASS(...)
Definition ObjectMacros.h:776
#define USTRUCT(...)
Definition ObjectMacros.h:746
Definition Archive.h:1208
Definition ArrayView.h:139
Definition Array.h:670
Definition AssetRegistryState.h:50
Definition SubclassOf.h:30
Definition MovieSceneDecorationContainer.h:110
virtual void OnDecorationRemoved(UObject *Decoration)
Definition MovieSceneDecorationContainer.h:190
void RemoveDecoration()
Definition MovieSceneDecorationContainer.h:172
UObject * FindDecoration(const TSubclassOf< UObject > &InClass) const
Definition MovieSceneDecorationContainer.h:120
DecorationType * FindDecoration() const
Definition MovieSceneDecorationContainer.h:153
TArrayView< const TObjectPtr< UObject > > GetDecorations() const
Definition MovieSceneDecorationContainer.h:144
void GetCompatibleUserDecorations(TSet< UClass * > &OutClasses) const
Definition MovieSceneDecorationContainer.h:180
virtual void GetCompatibleUserDecorationsImpl(TSet< UClass * > &OutClasses) const
Definition MovieSceneDecorationContainer.h:193
DecorationType * GetOrCreateDecoration()
Definition MovieSceneDecorationContainer.h:163
virtual void OnDecorationAdded(UObject *Decoration)
Definition MovieSceneDecorationContainer.h:187
Definition MovieSceneSignedObject.h:72
Definition Object.h:95
@ NullAllowed
Definition Object.h:62
Definition MovieSceneDecorationContainer.h:15
void RemoveNulls()
Definition MovieSceneDecorationContainer.h:95
DecorationType * FindDecoration() const
Definition MovieSceneDecorationContainer.h:56
DecorationType * GetOrCreateDecoration(UObject *Outer, TFunctionRef< void(UObject *)> Event)
Definition MovieSceneDecorationContainer.h:77
void RemoveDecoration()
Definition MovieSceneDecorationContainer.h:87
Definition Casts.h:52
Definition ObjectPtr.h:488