UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
DatasmithVariantElementsImpl.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2#pragma once
3
7
8#include "Containers/Array.h"
10
11template< typename InterfaceType >
22
23template< typename InterfaceType >
25{
26public:
32
33 virtual void SetPropertyPath(const FString& Path) override
34 {
35 PropertyPath = Path;
36 }
37
38 virtual const FString& GetPropertyPath() const override
39 {
40 return PropertyPath;
41 }
42
44 {
45 Category = InCategory;
46 }
47
48 virtual EDatasmithPropertyCategory GetCategory() const override
49 {
50 return Category;
51 }
52
53private:
54 FString PropertyPath;
56};
57
80
81class FDatasmithObjectPropertyCaptureElementImpl : public FDatasmithBasePropertyCaptureElementImpl< IDatasmithObjectPropertyCaptureElement >
82{
83public:
88
90 {
91 Object = InObject;
92 }
93
95 {
96 return Object;
97 }
98
99private:
101};
102
103class FDatasmithActorBindingElementImpl : public FDatasmithBaseVariantElementImpl< IDatasmithActorBindingElement >
104{
105public:
110
112 {
113 Actor = InActor;
114 }
115
117 {
118 return Actor;
119 }
120
122 {
123 PropertyCaptures.Add(Prop);
124 }
125
126 virtual int32 GetPropertyCapturesCount() const override
127 {
128 return PropertyCaptures.Num();
129 }
130
135
137 {
138 PropertyCaptures.Remove(Prop);
139 }
140
141private:
144};
145
146class FDatasmithVariantElementImpl : public FDatasmithBaseVariantElementImpl< IDatasmithVariantElement >
147{
148public:
153
155 {
156 Bindings.Add(Binding);
157 }
158
159 virtual int32 GetActorBindingsCount() const override
160 {
161 return Bindings.Num();
162 }
163
168
170 {
171 Bindings.Remove(Binding);
172 }
173
174private:
176};
177
178class FDatasmithVariantSetElementImpl : public FDatasmithBaseVariantElementImpl< IDatasmithVariantSetElement >
179{
180public:
185
187 {
188 Variants.Add(Variant);
189 }
190
191 virtual int32 GetVariantsCount() const override
192 {
193 return Variants.Num();
194 }
195
200
202 {
203 Variants.Remove(Variant);
204 }
205
206private:
208};
209
210class FDatasmithLevelVariantSetsElementImpl : public FDatasmithBaseVariantElementImpl< IDatasmithLevelVariantSetsElement >
211{
212public:
217
219 {
220 VariantSets.Add(VariantSet);
221 }
222
223 virtual int32 GetVariantSetsCount() const override
224 {
225 return VariantSets.Num();
226 }
227
232
234 {
235 VariantSets.Remove(VariantSet);
236 }
237
238private:
240};
241
242
243
244
245
246
247
248
FPlatformTypes::TCHAR TCHAR
Either ANSICHAR or WIDECHAR, depending on whether the platform supports wide characters or the requir...
Definition Platform.h:1135
FPlatformTypes::int32 int32
A 32-bit signed integer.
Definition Platform.h:1125
FPlatformTypes::uint64 uint64
A 64-bit unsigned integer.
Definition Platform.h:1117
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
EDatasmithElementType
Definition DatasmithDefinitions.h:20
EDatasmithPropertyCategory
Definition DatasmithDefinitions.h:416
EDatasmithElementVariantSubType
Definition DatasmithDefinitions.h:76
uint8_t uint8
Definition binka_ue_file_header.h:8
Definition DatasmithVariantElementsImpl.h:104
virtual TSharedPtr< IDatasmithActorElement > GetActor() const override
Definition DatasmithVariantElementsImpl.h:116
virtual void SetActor(TSharedPtr< IDatasmithActorElement > InActor) override
Definition DatasmithVariantElementsImpl.h:111
virtual void AddPropertyCapture(const TSharedRef< IDatasmithBasePropertyCaptureElement > &Prop) override
Definition DatasmithVariantElementsImpl.h:121
virtual TSharedPtr< IDatasmithBasePropertyCaptureElement > GetPropertyCapture(int32 InIndex) override
Definition DatasmithVariantElementsImpl.h:131
virtual void RemovePropertyCapture(const TSharedRef< IDatasmithBasePropertyCaptureElement > &Prop) override
Definition DatasmithVariantElementsImpl.h:136
FDatasmithActorBindingElementImpl()
Definition DatasmithVariantElementsImpl.h:106
virtual int32 GetPropertyCapturesCount() const override
Definition DatasmithVariantElementsImpl.h:126
Definition DatasmithVariantElementsImpl.h:25
virtual EDatasmithPropertyCategory GetCategory() const override
Definition DatasmithVariantElementsImpl.h:48
FDatasmithBasePropertyCaptureElementImpl(EDatasmithElementVariantSubType InSubType=EDatasmithElementVariantSubType::PropertyCapture)
Definition DatasmithVariantElementsImpl.h:27
virtual const FString & GetPropertyPath() const override
Definition DatasmithVariantElementsImpl.h:38
virtual void SetPropertyPath(const FString &Path) override
Definition DatasmithVariantElementsImpl.h:33
virtual void SetCategory(EDatasmithPropertyCategory InCategory) override
Definition DatasmithVariantElementsImpl.h:43
Definition DatasmithVariantElementsImpl.h:13
virtual bool IsSubType(const EDatasmithElementVariantSubType VariantSubType) const override
Definition DatasmithVariantElementsImpl.h:17
Definition DatasmithSceneElementsImpl.h:25
virtual bool IsSubTypeInternal(uint64 InSubType) const
Definition DatasmithSceneElementsImpl.h:46
Definition DatasmithVariantElementsImpl.h:211
FDatasmithLevelVariantSetsElementImpl(const TCHAR *InName)
Definition DatasmithVariantElementsImpl.h:213
virtual int32 GetVariantSetsCount() const override
Definition DatasmithVariantElementsImpl.h:223
virtual TSharedPtr< IDatasmithVariantSetElement > GetVariantSet(int32 InIndex) override
Definition DatasmithVariantElementsImpl.h:228
virtual void RemoveVariantSet(const TSharedRef< IDatasmithVariantSetElement > &VariantSet) override
Definition DatasmithVariantElementsImpl.h:233
virtual void AddVariantSet(const TSharedRef< IDatasmithVariantSetElement > &VariantSet) override
Definition DatasmithVariantElementsImpl.h:218
Definition DatasmithVariantElementsImpl.h:82
FDatasmithObjectPropertyCaptureElementImpl()
Definition DatasmithVariantElementsImpl.h:84
virtual TWeakPtr< IDatasmithElement > GetRecordedObject() const
Definition DatasmithVariantElementsImpl.h:94
virtual void SetRecordedObject(TWeakPtr< IDatasmithElement > InObject)
Definition DatasmithVariantElementsImpl.h:89
Definition DatasmithVariantElementsImpl.h:59
virtual const TArray< uint8 > & GetRecordedData() const
Definition DatasmithVariantElementsImpl.h:72
TArray< uint8 > Data
Definition DatasmithVariantElementsImpl.h:78
FDatasmithPropertyCaptureElementImpl()
Definition DatasmithVariantElementsImpl.h:61
virtual void SetRecordedData(const uint8 *InData, int32 InNumBytes)
Definition DatasmithVariantElementsImpl.h:66
Definition DatasmithVariantElementsImpl.h:147
virtual int32 GetActorBindingsCount() const override
Definition DatasmithVariantElementsImpl.h:159
virtual void AddActorBinding(const TSharedRef< IDatasmithActorBindingElement > &Binding) override
Definition DatasmithVariantElementsImpl.h:154
virtual void RemoveActorBinding(const TSharedRef< IDatasmithActorBindingElement > &Binding) override
Definition DatasmithVariantElementsImpl.h:169
virtual TSharedPtr< IDatasmithActorBindingElement > GetActorBinding(int32 InIndex) override
Definition DatasmithVariantElementsImpl.h:164
FDatasmithVariantElementImpl(const TCHAR *InName)
Definition DatasmithVariantElementsImpl.h:149
Definition DatasmithVariantElementsImpl.h:179
virtual int32 GetVariantsCount() const override
Definition DatasmithVariantElementsImpl.h:191
virtual void AddVariant(const TSharedRef< IDatasmithVariantElement > &Variant) override
Definition DatasmithVariantElementsImpl.h:186
virtual void RemoveVariant(const TSharedRef< IDatasmithVariantElement > &Variant) override
Definition DatasmithVariantElementsImpl.h:201
FDatasmithVariantSetElementImpl(const TCHAR *InName)
Definition DatasmithVariantElementsImpl.h:181
virtual TSharedPtr< IDatasmithVariantElement > GetVariant(int32 InIndex) override
Definition DatasmithVariantElementsImpl.h:196
Definition PropertyPath.Build.cs:6
Definition Array.h:670
SizeType Remove(const ElementType &Item)
Definition Array.h:3091
UE_REWRITE SizeType Num() const
Definition Array.h:1144
UE_NODEBUG UE_FORCEINLINE_HINT ElementType * GetData() UE_LIFETIMEBOUND
Definition Array.h:1027
UE_NODEBUG UE_FORCEINLINE_HINT SizeType Add(ElementType &&Item)
Definition Array.h:2696
UE_NODEBUG UE_FORCEINLINE_HINT bool IsValidIndex(SizeType Index) const
Definition Array.h:1122
void SetNumUninitialized(SizeType NewNum, EAllowShrinking AllowShrinking=UE::Core::Private::AllowShrinkingByDefault< AllocatorType >())
Definition Array.h:2369
Definition SharedPointer.h:692
Definition SharedPointer.h:153
Definition SharedPointer.h:1295
static UE_FORCEINLINE_HINT void * Memcpy(void *Dest, const void *Src, SIZE_T Count)
Definition UnrealMemory.h:160