UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
DatasmithMaterialElementsImpl.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2#pragma once
3
6
7#include "Algo/Find.h"
8#include "Containers/Array.h"
9#include "Misc/SecureHash.h"
10
11#define UE_API DATASMITHCORE_API
12
13
15{
16 FORCEINLINE void UpdateHashWithString(FMD5& MD5, const FString& String)
17 {
18 if (!String.IsEmpty())
19 {
20 MD5.Update(reinterpret_cast<const uint8*>(*String), String.Len() * sizeof(TCHAR));
21 }
22 }
23
25 {
26 for (const FString& String : Strings)
27 {
29 }
30 }
31
32 template< typename ReferenceType >
34 {
35 if (Reference.View())
36 {
37 FMD5Hash ReferenceHash = Reference.Edit()->CalculateElementHash(true);
38 MD5.Update(ReferenceHash.GetBytes(), ReferenceHash.GetSize());
39 }
40 }
41
42 template< typename ClassType >
44 {
45 for (TSharedPtr<ClassType>& Object : Array.Edit())
46 {
47 FMD5Hash ObjectHash = Object->CalculateElementHash(true);
48 MD5.Update(ObjectHash.GetBytes(), ObjectHash.GetSize());
49 }
50 }
51};
52
53class FDatasmithExpressionInputImpl : public FDatasmithElementImpl < IDatasmithExpressionInput >
54{
55public:
57 virtual ~FDatasmithExpressionInputImpl() = default;
58
59 virtual IDatasmithMaterialExpression* GetExpression() override { return Expression.Edit().Get(); }
60 virtual const IDatasmithMaterialExpression* GetExpression() const override { return Expression.View().Get(); }
62
63 virtual int32 GetOutputIndex() const override { return OutputIndex; }
65
67 {
68 if (ElementHash.IsValid() && !bForce)
69 {
70 return ElementHash;
71 }
72
73 FMD5 MD5;
74
76 MD5.Update(reinterpret_cast<const uint8*>(&OutputIndex), sizeof(OutputIndex));
77
78 ElementHash.Set(MD5);
79 return ElementHash;
80 }
81
82 virtual void CustomSerialize(class DirectLink::FSnapshotProxy& Ar) override;
83
84protected:
87};
88
89class FDatasmithExpressionOutputImpl : public FDatasmithElementImpl < IDatasmithExpressionOutput >
90{
91public:
95
97 {
98 if (ElementHash.IsValid() && !bForce)
99 {
100 return ElementHash;
101 }
102
103 FMD5 MD5;
104
106
107 ElementHash.Set(MD5);
108 return ElementHash;
109 }
110};
111
112template< typename InterfaceType >
114 : public FDatasmithElementImpl< InterfaceType >
115 , public TSharedFromThis< FDatasmithMaterialExpressionImpl< InterfaceType > >
116{
117public:
119
121
122 virtual EDatasmithMaterialExpressionType GetExpressionType() const override { return static_cast<EDatasmithMaterialExpressionType>(this->Subtype.Get()); }
123
124 virtual bool IsSubType( const EDatasmithMaterialExpressionType ExpressionType ) const override
125 { return this->IsSubTypeInternal( (uint64)ExpressionType ); }
126
127 virtual bool IsSubTypeInternal( uint64 InSubType ) const override { return InSubType == this->GetSubType(); } // as our subtype is not a bitfield
128
129 virtual void ConnectExpression( IDatasmithExpressionInput& ExpressionInput ) override
130 {
131 ConnectExpression( ExpressionInput, GetDefaultOutputIndex() );
132 }
133
134 inline virtual void ConnectExpression( IDatasmithExpressionInput& ExpressionInput, int32 OutputIndex ) override;
135
136 virtual int32 GetInputCount() const override { return 0; }
137 virtual IDatasmithExpressionInput* GetInput( int32 Index ) override { return nullptr; }
138 virtual const IDatasmithExpressionInput* GetInput( int32 Index ) const override { return nullptr; }
139
140 virtual int32 GetDefaultOutputIndex() const override { return DefaultOutputIndex; }
142
143 virtual void ResetExpression() override;
144
145 virtual void ResetExpressionImpl() = 0;
146
147protected:
149 {
150 FMD5 MD5;
151
153 MD5.Update(reinterpret_cast<const uint8*>(&DefaultOutputIndex), sizeof(DefaultOutputIndex));
154
156 MD5Hash.Set(MD5);
157
158 return MD5Hash;
159 }
160
161protected:
163
165};
166
167template< typename InterfaceType >
169{
170public:
172
178
179 virtual const TCHAR* GetGroupName() const override { return *GroupName.Get(); }
180 virtual void SetGroupName( const TCHAR* InGroupName ) override { GroupName = InGroupName; }
181
182protected:
184 {
185 FMD5 MD5;
186
188 MD5.Update(BaseHash.GetBytes(), BaseHash.GetSize());
189
191
193 MD5Hash.Set(MD5);
194
195 return MD5Hash;
196 }
197
198protected:
200};
201
202class FDatasmithMaterialExpressionBoolImpl : public FDatasmithExpressionParameterImpl< IDatasmithMaterialExpressionBool >
203{
204public:
206
207 virtual bool& GetBool() override { return bValue; }
208 virtual const bool& GetBool() const override { return bValue; }
209
210 virtual void ResetExpressionImpl() override
211 {
212 GroupName = FString();
213 bValue = false;
214 }
215
217 {
218 if (ElementHash.IsValid() && !bForce)
219 {
220 return ElementHash;
221 }
222
223 FMD5 MD5;
224
225 FMD5Hash BaseHash = ComputeHash();
226 MD5.Update(BaseHash.GetBytes(), BaseHash.GetSize());
227
228 MD5.Update(reinterpret_cast<const uint8*>(&bValue), sizeof(bValue));
229
230 ElementHash.Set(MD5);
231 return ElementHash;
232 }
233
234protected:
236};
237
238class FDatasmithMaterialExpressionColorImpl : public FDatasmithExpressionParameterImpl< IDatasmithMaterialExpressionColor >
239{
240public:
242
243 virtual FLinearColor& GetColor() override { return LinearColor; }
244 virtual const FLinearColor& GetColor() const override { return LinearColor; }
245
246 virtual void ResetExpressionImpl() override
247 {
248 GroupName = FString();
250 }
251
253 {
254 if (ElementHash.IsValid() && !bForce)
255 {
256 return ElementHash;
257 }
258
259 FMD5 MD5;
260
261 FMD5Hash BaseHash = ComputeHash();
262 MD5.Update(BaseHash.GetBytes(), BaseHash.GetSize());
263
264 MD5.Update(reinterpret_cast<const uint8*>(&LinearColor), sizeof(LinearColor));
265
266 ElementHash.Set(MD5);
267 return ElementHash;
268 }
269
270protected:
272};
273
274class FDatasmithMaterialExpressionScalarImpl : public FDatasmithExpressionParameterImpl< IDatasmithMaterialExpressionScalar >
275{
276public:
278
279 virtual float& GetScalar() override { return Scalar; }
280 virtual const float& GetScalar() const override { return Scalar; }
281
282 virtual void ResetExpressionImpl() override
283 {
284 GroupName = FString();
285 Scalar = 0;
286 }
287
289 {
290 if (ElementHash.IsValid() && !bForce)
291 {
292 return ElementHash;
293 }
294
295 FMD5 MD5;
296
297 FMD5Hash BaseHash = ComputeHash();
298 MD5.Update(BaseHash.GetBytes(), BaseHash.GetSize());
299
300 MD5.Update(reinterpret_cast<const uint8*>(&Scalar), sizeof(Scalar));
301
302 ElementHash.Set(MD5);
303 return ElementHash;
304 }
305
306protected:
308};
309
310class FDatasmithMaterialExpressionTextureImpl : public FDatasmithExpressionParameterImpl< IDatasmithMaterialExpressionTexture >
311{
312public:
314
315 virtual const TCHAR* GetTexturePathName() const override { return *TexturePathName.Get(); }
317
322 virtual const IDatasmithExpressionInput& GetInputCoordinate() const override { return *TextureCoordinate.View(); }
323
324 virtual int32 GetInputCount() const override { return 1; }
326 virtual const IDatasmithExpressionInput* GetInput( int32 Index ) const override { return TextureCoordinate.View().Get(); }
327
328 virtual void ResetExpressionImpl() override
329 {
330 GroupName = FString();
331 TexturePathName = FString();
332 }
333
335 {
336 if (ElementHash.IsValid() && !bForce)
337 {
338 return ElementHash;
339 }
340
341 FMD5 MD5;
342
343 FMD5Hash BaseHash = ComputeHash();
344 MD5.Update(BaseHash.GetBytes(), BaseHash.GetSize());
345
347
349
350 ElementHash.Set(MD5);
351 return ElementHash;
352 }
353
354protected:
356
358
367};
368
369class FDatasmithMaterialExpressionTextureCoordinateImpl : public FDatasmithMaterialExpressionImpl< IDatasmithMaterialExpressionTextureCoordinate >
370{
371public:
373
374 virtual int32 GetCoordinateIndex() const override { return CoordinateIndex; }
376
377 virtual float GetUTiling() const override { return UTiling; }
378 virtual void SetUTiling( float InUTiling ) override { UTiling = InUTiling; }
379
380 virtual float GetVTiling() const override { return VTiling;}
381 virtual void SetVTiling( float InVTiling ) override { VTiling = InVTiling; }
382
383 virtual void ResetExpressionImpl() override
384 {
385 CoordinateIndex = 0;
386 UTiling = 1;
387 VTiling = 1;
388 }
389
391 {
392 if (ElementHash.IsValid() && !bForce)
393 {
394 return ElementHash;
395 }
396
397 FMD5 MD5;
398
399 FMD5Hash BaseHash = ComputeHash();
400 MD5.Update(BaseHash.GetBytes(), BaseHash.GetSize());
401
402 MD5.Update(reinterpret_cast<const uint8*>(&CoordinateIndex), sizeof(CoordinateIndex));
403 MD5.Update(reinterpret_cast<const uint8*>(&UTiling), sizeof(UTiling));
404 MD5.Update(reinterpret_cast<const uint8*>(&VTiling), sizeof(VTiling));
405
406 ElementHash.Set(MD5);
407 return ElementHash;
408 }
409
410protected:
414};
415
416class FDatasmithMaterialExpressionFlattenNormalImpl : public FDatasmithMaterialExpressionImpl< IDatasmithMaterialExpressionFlattenNormal >
417{
418public:
420
421 virtual IDatasmithExpressionInput& GetNormal() override { return *Normal.Edit(); }
422 virtual const IDatasmithExpressionInput& GetNormal() const override { return *Normal.View(); }
423
424 virtual IDatasmithExpressionInput& GetFlatness() override { return *Flatness.Edit(); }
425 virtual const IDatasmithExpressionInput& GetFlatness() const override { return *Flatness.View(); }
426
427 virtual int32 GetInputCount() const override { return 2; }
428 virtual IDatasmithExpressionInput* GetInput( int32 Index ) override { return Index == 0 ? Normal.Edit().Get() : Flatness.Edit().Get(); }
429 virtual const IDatasmithExpressionInput* GetInput( int32 Index ) const override { return Index == 0 ? Normal.View().Get() : Flatness.View().Get(); }
430
431 virtual void ResetExpressionImpl() override { /*Nothing to reset.*/ }
432
434 {
435 if (ElementHash.IsValid() && !bForce)
436 {
437 return ElementHash;
438 }
439
440 FMD5 MD5;
441
442 FMD5Hash BaseHash = ComputeHash();
443 MD5.Update(BaseHash.GetBytes(), BaseHash.GetSize());
444
447
448 ElementHash.Set(MD5);
449 return ElementHash;
450 }
451
452protected:
455};
456
457class FDatasmithMaterialExpressionGenericImpl : public FDatasmithMaterialExpressionImpl< IDatasmithMaterialExpressionGeneric >
458{
459public:
461
464 {
465 RegisterReferenceProxy( Inputs, "Inputs" );
466 RegisterReferenceProxy( Properties, "Properties" );
467 Store.RegisterParameter( ExpressionName, "ExpressionName" );
468 }
469
470
472 virtual const TCHAR* GetExpressionName() const override { return *ExpressionName.Get(); }
473
474 int32 GetPropertiesCount() const override { return Properties.Num(); }
475
478
479 const TSharedPtr< IDatasmithKeyValueProperty >& GetPropertyByName( const TCHAR* InName ) const override;
481
483
484 virtual int32 GetInputCount() const override { return Inputs.Num(); }
486 {
487 while ( !Inputs.IsValidIndex( Index ) )
488 {
490 }
491
492 return Inputs[Index].Get();
493 }
494
495 virtual const IDatasmithExpressionInput* GetInput( int32 Index ) const override { return Inputs.IsValidIndex( Index ) ? Inputs[Index].Get() : nullptr; }
496
497 virtual void ResetExpressionImpl() override
498 {
499 Inputs.Empty();
500 ExpressionName = FString();
502 }
503
505 {
506 if (ElementHash.IsValid() && !bForce)
507 {
508 return ElementHash;
509 }
510
511 FMD5 MD5;
512
513 FMD5Hash BaseHash = ComputeHash();
514 MD5.Update(BaseHash.GetBytes(), BaseHash.GetSize());
515
519
520 ElementHash.Set(MD5);
521 return ElementHash;
522 }
523
524protected:
527
529};
530
531class FDatasmithMaterialExpressionFunctionCallImpl : public FDatasmithMaterialExpressionImpl< IDatasmithMaterialExpressionFunctionCall >
532{
533public:
540
542 virtual const TCHAR* GetFunctionPathName() const override { return *FunctionPathName.Get(); }
543
544 virtual int32 GetInputCount() const override { return Inputs.Num(); }
546 {
547 while (!Inputs.IsValidIndex( Index ))
548 {
550 }
551
552 return Inputs[Index].Get();
553 }
554
555 virtual const IDatasmithExpressionInput* GetInput( int32 Index ) const override { return Inputs.IsValidIndex( Index ) ? Inputs[Index].Get() : nullptr; }
556
557 virtual void ResetExpressionImpl() override
558 {
559 Inputs.Empty();
560 FunctionPathName = FString();
561 }
562
564 {
565 if (ElementHash.IsValid() && !bForce)
566 {
567 return ElementHash;
568 }
569
570 FMD5 MD5;
571
572 FMD5Hash BaseHash = ComputeHash();
573 MD5.Update(BaseHash.GetBytes(), BaseHash.GetSize());
574
577
578 ElementHash.Set(MD5);
579 return ElementHash;
580 }
581
582protected:
585};
586
587class FDatasmithMaterialExpressionCustomImpl : public FDatasmithMaterialExpressionImpl< IDatasmithMaterialExpressionCustom >
588{
589public:
591
592 virtual int32 GetInputCount() const override { return Inputs.Num(); }
593 virtual IDatasmithExpressionInput* GetInput( int32 Index ) override;
594 virtual const IDatasmithExpressionInput* GetInput( int32 Index ) const override { return Inputs.IsValidIndex( Index ) ? Inputs[Index].Get() : nullptr; }
595
596 virtual void SetCode(const TCHAR* InCode) override { Code = InCode; }
597 virtual const TCHAR* GetCode() const override { return *Code.Get(); }
598
599 virtual void SetDescription(const TCHAR* InDescription) override { Description = InDescription; }
600 virtual const TCHAR* GetDescription() const override { return *Description.Get(); }
601
603 virtual EDatasmithShaderDataType GetOutputType() const override { return OutputType; }
604
605 virtual int32 GetIncludeFilePathCount() const override { return IncludeFilePaths.Get().Num(); }
606 virtual void AddIncludeFilePath(const TCHAR* Path) override { IncludeFilePaths.Get().Add(Path); }
607 virtual const TCHAR* GetIncludeFilePath(int32 Index) const override { return IncludeFilePaths.Get().IsValidIndex(Index) ? *IncludeFilePaths.Get()[Index] : TEXT(""); }
608
609 virtual int32 GetAdditionalDefineCount() const override { return Defines.Get().Num(); }
610 virtual void AddAdditionalDefine(const TCHAR* Define) override { Defines.Get().Add(Define); }
611 virtual const TCHAR* GetAdditionalDefine(int32 Index) const override { return Defines.Get().IsValidIndex(Index) ? *Defines.Get()[Index] : TEXT(""); }
612
613 virtual int32 GetArgumentNameCount() const override { return ArgNames.Get().Num(); }
614 virtual void SetArgumentName(int32 ArgIndex, const TCHAR* ArgName) override;
615 virtual const TCHAR* GetArgumentName(int32 Index) const override { return ArgNames.Get().IsValidIndex(Index) ? *ArgNames.Get()[Index] : TEXT("");}
616
617 virtual void ResetExpressionImpl() override
618 {
619 Code = FString();
620 Description = FString();
622 IncludeFilePaths.Get().Empty();
623 Defines.Get().Empty();
624 ArgNames.Get().Empty();
625 Inputs.Empty();
626 }
627
651
652protected:
660};
661
662class FDatasmithUEPbrMaterialElementImpl : public FDatasmithBaseMaterialElementImpl< IDatasmithUEPbrMaterialElement >
663{
664public:
665 UE_API explicit FDatasmithUEPbrMaterialElementImpl( const TCHAR* InName );
667
668 UE_API virtual FMD5Hash CalculateElementHash(bool bForce) override;
669
670 virtual IDatasmithExpressionInput& GetBaseColor() override { return *BaseColor.Edit(); }
671 virtual IDatasmithExpressionInput& GetMetallic() override { return *Metallic.Edit(); }
672 virtual IDatasmithExpressionInput& GetSpecular() override { return *Specular.Edit(); }
673 virtual IDatasmithExpressionInput& GetRoughness() override { return *Roughness.Edit(); }
675 virtual IDatasmithExpressionInput& GetOpacity() override { return *Opacity.Edit(); }
676 virtual IDatasmithExpressionInput& GetNormal() override { return *Normal.Edit(); }
677 virtual IDatasmithExpressionInput& GetRefraction() override { return *Refraction.Edit(); }
679 virtual IDatasmithExpressionInput& GetClearCoat() override { return *ClearCoat.Edit(); }
683
684 virtual int GetBlendMode() const override {return BlendMode; }
685 virtual void SetBlendMode( int InBlendMode ) override { BlendMode = InBlendMode; }
686
687 virtual bool GetTwoSided() const override {return bTwoSided; }
688 virtual void SetTwoSided( bool bInTwoSided ) override { bTwoSided = bInTwoSided; }
689
690 virtual bool GetIsThinSurface() const override { return bIsThinSurface; }
692
693 virtual bool GetUseMaterialAttributes() const override{ return bUseMaterialAttributes; }
695
696 virtual bool GetMaterialFunctionOnly() const override { return bMaterialFunctionOnly; };
698
699 virtual float GetOpacityMaskClipValue() const override { return OpacityMaskClipValue; }
701
704
705 virtual int32 GetExpressionsCount() const override { return Expressions.View().Num(); }
707 UE_API virtual int32 GetExpressionIndex( const IDatasmithMaterialExpression* Expression ) const override;
708
710
711 UE_API virtual void ResetExpressionGraph( bool bRemoveAllExpressions ) override;
712
713 virtual void SetParentLabel( const TCHAR* InParentLabel ) override { ParentLabel = InParentLabel; }
714 UE_API virtual const TCHAR* GetParentLabel() const override;
715
717 virtual EDatasmithShadingModel GetShadingModel() const override { return ShadingModel; }
718
719 UE_API virtual void CustomSerialize(class DirectLink::FSnapshotProxy& Ar) override;
720
721protected:
736
738
746
749};
750
751template< typename InterfaceType >
754 , DefaultOutputIndex( 0 )
755{
756 this->RegisterReferenceProxy( Outputs, "Outputs" );
757 this->Store.RegisterParameter( DefaultOutputIndex, "DefaultOutputIndex" );
758}
759
760template< typename InterfaceType >
762{
763 while ( !Outputs.IsValidIndex( InOutputIndex ) && InOutputIndex >= 0 )
764 {
765 Outputs.Add( MakeShared<FDatasmithExpressionOutputImpl>( TEXT( "Ouput" ) ) );
766 }
767
768 int32 OutputIndex = Outputs.IsValidIndex( InOutputIndex ) ? InOutputIndex : INDEX_NONE;
769
770 if ( OutputIndex != INDEX_NONE )
771 {
772 ExpressionInput.SetExpression( this );
773 ExpressionInput.SetOutputIndex( OutputIndex );
774 }
775}
776
777template< typename InterfaceType >
779{
780 // Call the derived implementation first, it may remove unneeded inputs.
781 ResetExpressionImpl();
782
783 this->Label = FString();
784 this->ElementHash = FMD5Hash();
785
786 for ( int InputIndex = 0; InputIndex < GetInputCount(); ++InputIndex )
787 {
788 IDatasmithExpressionInput* Input = GetInput( InputIndex );
789 Input->SetExpression( nullptr );
790 }
791}
792
793#undef UE_API
@ Generic
Definition AndroidInputInterface.h:108
#define FORCEINLINE
Definition AndroidPlatform.h:140
@ INDEX_NONE
Definition CoreMiscDefines.h:150
#define TEXT(x)
Definition Platform.h:1272
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
EDatasmithShaderDataType
Definition DatasmithDefinitions.h:323
EDatasmithElementType
Definition DatasmithDefinitions.h:20
EDatasmithShadingModel
Definition DatasmithDefinitions.h:357
EDatasmithMaterialExpressionType
Definition DatasmithDefinitions.h:90
#define UE_API
Definition DatasmithMaterialElementsImpl.h:11
#define ArgName(Type, Name)
Definition TypedElementQueryCapabilityForwarder.h:45
uint8_t uint8
Definition binka_ue_file_header.h:8
Definition DatasmithSceneElementsImpl.h:1365
Definition DatasmithSceneElementsImpl.h:25
TReflected< uint64 > Subtype
Definition DatasmithSceneElementsImpl.h:55
FMD5Hash ElementHash
Definition DatasmithSceneElementsImpl.h:51
uint64 GetSubType() const
Definition DatasmithSceneElementsImpl.h:48
TReflected< FString > Name
Definition DatasmithSceneElementsImpl.h:56
DirectLink::FParameterStore Store
Definition DatasmithSceneElementsImpl.h:53
Definition DatasmithMaterialElementsImpl.h:54
virtual int32 GetOutputIndex() const override
Definition DatasmithMaterialElementsImpl.h:63
TDatasmithReferenceProxy< IDatasmithMaterialExpression > Expression
Definition DatasmithMaterialElementsImpl.h:85
TReflected< int32 > OutputIndex
Definition DatasmithMaterialElementsImpl.h:86
virtual void CustomSerialize(class DirectLink::FSnapshotProxy &Ar) override
Definition DatasmithMaterialElementsImpl.cpp:62
virtual void SetOutputIndex(int32 InOutputIndex) override
Definition DatasmithMaterialElementsImpl.h:64
virtual ~FDatasmithExpressionInputImpl()=default
FMD5Hash CalculateElementHash(bool bForce) override
Definition DatasmithMaterialElementsImpl.h:66
virtual IDatasmithMaterialExpression * GetExpression() override
Definition DatasmithMaterialElementsImpl.h:59
virtual void SetExpression(IDatasmithMaterialExpression *InExpression) override
Definition DatasmithMaterialElementsImpl.cpp:16
virtual const IDatasmithMaterialExpression * GetExpression() const override
Definition DatasmithMaterialElementsImpl.h:60
Definition DatasmithMaterialElementsImpl.h:90
FMD5Hash CalculateElementHash(bool bForce) override
Definition DatasmithMaterialElementsImpl.h:96
FDatasmithExpressionOutputImpl(const TCHAR *InOutputName)
Definition DatasmithMaterialElementsImpl.h:92
Definition DatasmithMaterialElementsImpl.h:169
FDatasmithExpressionParameterImpl(EDatasmithMaterialExpressionType InSubType)
Definition DatasmithMaterialElementsImpl.h:173
FMD5Hash ComputeHash()
Definition DatasmithMaterialElementsImpl.h:183
virtual const TCHAR * GetGroupName() const override
Definition DatasmithMaterialElementsImpl.h:179
FDatasmithMaterialExpressionImpl< InterfaceType > TBaseExpression
Definition DatasmithMaterialElementsImpl.h:171
virtual void SetGroupName(const TCHAR *InGroupName) override
Definition DatasmithMaterialElementsImpl.h:180
TReflected< FString > GroupName
Definition DatasmithMaterialElementsImpl.h:199
Definition DatasmithMaterialElementsImpl.h:203
FMD5Hash CalculateElementHash(bool bForce) override
Definition DatasmithMaterialElementsImpl.h:216
TReflected< bool > bValue
Definition DatasmithMaterialElementsImpl.h:235
virtual bool & GetBool() override
Definition DatasmithMaterialElementsImpl.h:207
virtual void ResetExpressionImpl() override
Definition DatasmithMaterialElementsImpl.h:210
FDatasmithMaterialExpressionBoolImpl()
Definition DatasmithMaterialElementsImpl.cpp:78
virtual const bool & GetBool() const override
Definition DatasmithMaterialElementsImpl.h:208
Definition DatasmithMaterialElementsImpl.h:239
virtual FLinearColor & GetColor() override
Definition DatasmithMaterialElementsImpl.h:243
TReflected< FLinearColor > LinearColor
Definition DatasmithMaterialElementsImpl.h:271
virtual void ResetExpressionImpl() override
Definition DatasmithMaterialElementsImpl.h:246
FMD5Hash CalculateElementHash(bool bForce) override
Definition DatasmithMaterialElementsImpl.h:252
virtual const FLinearColor & GetColor() const override
Definition DatasmithMaterialElementsImpl.h:244
FDatasmithMaterialExpressionColorImpl()
Definition DatasmithMaterialElementsImpl.cpp:86
Definition DatasmithMaterialElementsImpl.h:588
virtual const TCHAR * GetCode() const override
Definition DatasmithMaterialElementsImpl.h:597
virtual FMD5Hash CalculateElementHash(bool bForce) override
Definition DatasmithMaterialElementsImpl.h:628
virtual void SetArgumentName(int32 ArgIndex, const TCHAR *ArgName) override
Definition DatasmithMaterialElementsImpl.cpp:442
FDatasmithMaterialExpressionCustomImpl()
Definition DatasmithMaterialElementsImpl.cpp:414
virtual int32 GetAdditionalDefineCount() const override
Definition DatasmithMaterialElementsImpl.h:609
TReflected< TArray< FString > > Defines
Definition DatasmithMaterialElementsImpl.h:657
TReflected< EDatasmithShaderDataType, uint32 > OutputType
Definition DatasmithMaterialElementsImpl.h:655
TReflected< TArray< FString > > ArgNames
Definition DatasmithMaterialElementsImpl.h:658
virtual void ResetExpressionImpl() override
Definition DatasmithMaterialElementsImpl.h:617
virtual int32 GetInputCount() const override
Definition DatasmithMaterialElementsImpl.h:592
virtual int32 GetIncludeFilePathCount() const override
Definition DatasmithMaterialElementsImpl.h:605
virtual void AddAdditionalDefine(const TCHAR *Define) override
Definition DatasmithMaterialElementsImpl.h:610
virtual const TCHAR * GetIncludeFilePath(int32 Index) const override
Definition DatasmithMaterialElementsImpl.h:607
virtual const TCHAR * GetDescription() const override
Definition DatasmithMaterialElementsImpl.h:600
virtual void SetDescription(const TCHAR *InDescription) override
Definition DatasmithMaterialElementsImpl.h:599
virtual const IDatasmithExpressionInput * GetInput(int32 Index) const override
Definition DatasmithMaterialElementsImpl.h:594
virtual void SetOutputType(EDatasmithShaderDataType InOutputType) override
Definition DatasmithMaterialElementsImpl.h:602
virtual int32 GetArgumentNameCount() const override
Definition DatasmithMaterialElementsImpl.h:613
TReflected< FString > Description
Definition DatasmithMaterialElementsImpl.h:654
virtual const TCHAR * GetArgumentName(int32 Index) const override
Definition DatasmithMaterialElementsImpl.h:615
TReflected< TArray< FString > > IncludeFilePaths
Definition DatasmithMaterialElementsImpl.h:656
virtual void AddIncludeFilePath(const TCHAR *Path) override
Definition DatasmithMaterialElementsImpl.h:606
virtual EDatasmithShaderDataType GetOutputType() const override
Definition DatasmithMaterialElementsImpl.h:603
virtual const TCHAR * GetAdditionalDefine(int32 Index) const override
Definition DatasmithMaterialElementsImpl.h:611
TReflected< FString > Code
Definition DatasmithMaterialElementsImpl.h:653
TDatasmithReferenceArrayProxy< FDatasmithExpressionInputImpl > Inputs
Definition DatasmithMaterialElementsImpl.h:659
virtual void SetCode(const TCHAR *InCode) override
Definition DatasmithMaterialElementsImpl.h:596
virtual IDatasmithExpressionInput * GetInput(int32 Index) override
Definition DatasmithMaterialElementsImpl.cpp:426
Definition DatasmithMaterialElementsImpl.h:417
virtual const IDatasmithExpressionInput * GetInput(int32 Index) const override
Definition DatasmithMaterialElementsImpl.h:429
TDatasmithReferenceProxy< FDatasmithExpressionInputImpl > Normal
Definition DatasmithMaterialElementsImpl.h:453
virtual const IDatasmithExpressionInput & GetFlatness() const override
Definition DatasmithMaterialElementsImpl.h:425
virtual void ResetExpressionImpl() override
Definition DatasmithMaterialElementsImpl.h:431
virtual IDatasmithExpressionInput & GetNormal() override
Definition DatasmithMaterialElementsImpl.h:421
FMD5Hash CalculateElementHash(bool bForce) override
Definition DatasmithMaterialElementsImpl.h:433
virtual IDatasmithExpressionInput * GetInput(int32 Index) override
Definition DatasmithMaterialElementsImpl.h:428
virtual const IDatasmithExpressionInput & GetNormal() const override
Definition DatasmithMaterialElementsImpl.h:422
virtual int32 GetInputCount() const override
Definition DatasmithMaterialElementsImpl.h:427
virtual IDatasmithExpressionInput & GetFlatness() override
Definition DatasmithMaterialElementsImpl.h:424
FDatasmithMaterialExpressionFlattenNormalImpl()
Definition DatasmithMaterialElementsImpl.cpp:131
TDatasmithReferenceProxy< FDatasmithExpressionInputImpl > Flatness
Definition DatasmithMaterialElementsImpl.h:454
Definition DatasmithMaterialElementsImpl.h:532
FMD5Hash CalculateElementHash(bool bForce) override
Definition DatasmithMaterialElementsImpl.h:563
virtual const TCHAR * GetFunctionPathName() const override
Definition DatasmithMaterialElementsImpl.h:542
TDatasmithReferenceArrayProxy< FDatasmithExpressionInputImpl > Inputs
Definition DatasmithMaterialElementsImpl.h:583
virtual void ResetExpressionImpl() override
Definition DatasmithMaterialElementsImpl.h:557
virtual void SetFunctionPathName(const TCHAR *InFunctionPathName) override
Definition DatasmithMaterialElementsImpl.h:541
FDatasmithMaterialExpressionFunctionCallImpl()
Definition DatasmithMaterialElementsImpl.h:534
virtual IDatasmithExpressionInput * GetInput(int32 Index) override
Definition DatasmithMaterialElementsImpl.h:545
virtual int32 GetInputCount() const override
Definition DatasmithMaterialElementsImpl.h:544
virtual const IDatasmithExpressionInput * GetInput(int32 Index) const override
Definition DatasmithMaterialElementsImpl.h:555
TReflected< FString > FunctionPathName
Definition DatasmithMaterialElementsImpl.h:584
Definition DatasmithMaterialElementsImpl.h:458
TDatasmithReferenceArrayProxy< IDatasmithKeyValueProperty > Properties
Definition DatasmithMaterialElementsImpl.h:528
virtual void ResetExpressionImpl() override
Definition DatasmithMaterialElementsImpl.h:497
TDatasmithReferenceArrayProxy< FDatasmithExpressionInputImpl > Inputs
Definition DatasmithMaterialElementsImpl.h:525
virtual const IDatasmithExpressionInput * GetInput(int32 Index) const override
Definition DatasmithMaterialElementsImpl.h:495
int32 GetPropertiesCount() const override
Definition DatasmithMaterialElementsImpl.h:474
TReflected< FString > ExpressionName
Definition DatasmithMaterialElementsImpl.h:526
virtual int32 GetInputCount() const override
Definition DatasmithMaterialElementsImpl.h:484
virtual void SetExpressionName(const TCHAR *InExpressionName) override
Definition DatasmithMaterialElementsImpl.h:471
FMD5Hash CalculateElementHash(bool bForce) override
Definition DatasmithMaterialElementsImpl.h:504
static TSharedPtr< IDatasmithKeyValueProperty > NullPropertyPtr
Definition DatasmithMaterialElementsImpl.h:460
void AddProperty(const TSharedPtr< IDatasmithKeyValueProperty > &InProperty) override
Definition DatasmithMaterialElementsImpl.cpp:184
const TSharedPtr< IDatasmithKeyValueProperty > & GetPropertyByName(const TCHAR *InName) const override
Definition DatasmithMaterialElementsImpl.cpp:164
FDatasmithMaterialExpressionGenericImpl()
Definition DatasmithMaterialElementsImpl.h:462
virtual const TCHAR * GetExpressionName() const override
Definition DatasmithMaterialElementsImpl.h:472
virtual IDatasmithExpressionInput * GetInput(int32 Index) override
Definition DatasmithMaterialElementsImpl.h:485
const TSharedPtr< IDatasmithKeyValueProperty > & GetProperty(int32 InIndex) const override
Definition DatasmithMaterialElementsImpl.cpp:144
Definition DatasmithMaterialElementsImpl.h:116
virtual int32 GetInputCount() const override
Definition DatasmithMaterialElementsImpl.h:136
FMD5Hash ComputeHash()
Definition DatasmithMaterialElementsImpl.h:148
virtual const IDatasmithExpressionInput * GetInput(int32 Index) const override
Definition DatasmithMaterialElementsImpl.h:138
TDatasmithReferenceArrayProxy< FDatasmithExpressionOutputImpl > Outputs
Definition DatasmithMaterialElementsImpl.h:162
virtual void ConnectExpression(IDatasmithExpressionInput &ExpressionInput) override
Definition DatasmithMaterialElementsImpl.h:129
virtual void ConnectExpression(IDatasmithExpressionInput &ExpressionInput, int32 OutputIndex) override
Definition DatasmithMaterialElementsImpl.h:761
virtual ~FDatasmithMaterialExpressionImpl()=default
virtual IDatasmithExpressionInput * GetInput(int32 Index) override
Definition DatasmithMaterialElementsImpl.h:137
TReflected< int32 > DefaultOutputIndex
Definition DatasmithMaterialElementsImpl.h:164
virtual void SetDefaultOutputIndex(int32 InDefaultOutputIndex) override
Definition DatasmithMaterialElementsImpl.h:141
virtual int32 GetDefaultOutputIndex() const override
Definition DatasmithMaterialElementsImpl.h:140
virtual bool IsSubType(const EDatasmithMaterialExpressionType ExpressionType) const override
Definition DatasmithMaterialElementsImpl.h:124
virtual void ResetExpressionImpl()=0
virtual bool IsSubTypeInternal(uint64 InSubType) const override
Definition DatasmithMaterialElementsImpl.h:127
virtual EDatasmithMaterialExpressionType GetExpressionType() const override
Definition DatasmithMaterialElementsImpl.h:122
FDatasmithMaterialExpressionImpl(EDatasmithMaterialExpressionType InSubType)
Definition DatasmithMaterialElementsImpl.h:752
virtual void ResetExpression() override
Definition DatasmithMaterialElementsImpl.h:778
Definition DatasmithMaterialElementsImpl.h:275
virtual const float & GetScalar() const override
Definition DatasmithMaterialElementsImpl.h:280
virtual void ResetExpressionImpl() override
Definition DatasmithMaterialElementsImpl.h:282
virtual float & GetScalar() override
Definition DatasmithMaterialElementsImpl.h:279
TReflected< float > Scalar
Definition DatasmithMaterialElementsImpl.h:307
FDatasmithMaterialExpressionScalarImpl()
Definition DatasmithMaterialElementsImpl.cpp:98
FMD5Hash CalculateElementHash(bool bForce) override
Definition DatasmithMaterialElementsImpl.h:288
Definition DatasmithMaterialElementsImpl.h:370
TReflected< float > VTiling
Definition DatasmithMaterialElementsImpl.h:413
FDatasmithMaterialExpressionTextureCoordinateImpl()
Definition DatasmithMaterialElementsImpl.cpp:120
virtual float GetVTiling() const override
Definition DatasmithMaterialElementsImpl.h:380
virtual int32 GetCoordinateIndex() const override
Definition DatasmithMaterialElementsImpl.h:374
virtual void SetCoordinateIndex(int32 InCoordinateIndex) override
Definition DatasmithMaterialElementsImpl.h:375
virtual void ResetExpressionImpl() override
Definition DatasmithMaterialElementsImpl.h:383
virtual void SetVTiling(float InVTiling) override
Definition DatasmithMaterialElementsImpl.h:381
FMD5Hash CalculateElementHash(bool bForce) override
Definition DatasmithMaterialElementsImpl.h:390
TReflected< int32 > CoordinateIndex
Definition DatasmithMaterialElementsImpl.h:411
virtual void SetUTiling(float InUTiling) override
Definition DatasmithMaterialElementsImpl.h:378
virtual float GetUTiling() const override
Definition DatasmithMaterialElementsImpl.h:377
TReflected< float > UTiling
Definition DatasmithMaterialElementsImpl.h:412
Definition DatasmithMaterialElementsImpl.h:311
virtual const TCHAR * GetTexturePathName() const override
Definition DatasmithMaterialElementsImpl.h:315
TReflected< FString > TexturePathName
Definition DatasmithMaterialElementsImpl.h:355
virtual const IDatasmithExpressionInput * GetInput(int32 Index) const override
Definition DatasmithMaterialElementsImpl.h:326
virtual IDatasmithExpressionInput & GetInputCoordinate() override
Definition DatasmithMaterialElementsImpl.h:321
virtual int32 GetInputCount() const override
Definition DatasmithMaterialElementsImpl.h:324
virtual IDatasmithExpressionInput * GetInput(int32 Index) override
Definition DatasmithMaterialElementsImpl.h:325
FDatasmithMaterialExpressionTextureImpl()
Definition DatasmithMaterialElementsImpl.cpp:106
virtual void SetTexturePathName(const TCHAR *InTexturePathName)
Definition DatasmithMaterialElementsImpl.h:316
FMD5Hash CalculateElementHash(bool bForce) override
Definition DatasmithMaterialElementsImpl.h:334
TDatasmithReferenceProxy< FDatasmithExpressionInputImpl > TextureCoordinate
Definition DatasmithMaterialElementsImpl.h:357
virtual void ResetExpressionImpl() override
Definition DatasmithMaterialElementsImpl.h:328
virtual const IDatasmithExpressionInput & GetInputCoordinate() const override
Definition DatasmithMaterialElementsImpl.h:322
Definition DatasmithMaterialElementsImpl.h:663
TDatasmithReferenceProxy< FDatasmithExpressionInputImpl > BaseColor
Definition DatasmithMaterialElementsImpl.h:722
virtual IDatasmithExpressionInput & GetClearCoat() override
Definition DatasmithMaterialElementsImpl.h:679
virtual UE_API int32 GetExpressionIndex(const IDatasmithMaterialExpression *Expression) const override
Definition DatasmithMaterialElementsImpl.cpp:297
virtual IDatasmithExpressionInput & GetSpecular() override
Definition DatasmithMaterialElementsImpl.h:672
TReflected< float > OpacityMaskClipValue
Definition DatasmithMaterialElementsImpl.h:744
virtual IDatasmithExpressionInput & GetBaseColor() override
Definition DatasmithMaterialElementsImpl.h:670
virtual float GetOpacityMaskClipValue() const override
Definition DatasmithMaterialElementsImpl.h:699
virtual IDatasmithExpressionInput & GetClearCoatRoughness() override
Definition DatasmithMaterialElementsImpl.h:680
virtual IDatasmithExpressionInput & GetOpacity() override
Definition DatasmithMaterialElementsImpl.h:675
virtual bool GetIsThinSurface() const override
Definition DatasmithMaterialElementsImpl.h:690
virtual int32 GetExpressionsCount() const override
Definition DatasmithMaterialElementsImpl.h:705
virtual IDatasmithExpressionInput & GetNormal() override
Definition DatasmithMaterialElementsImpl.h:676
virtual IDatasmithExpressionInput & GetMetallic() override
Definition DatasmithMaterialElementsImpl.h:671
virtual IDatasmithExpressionInput & GetMaterialAttributes() override
Definition DatasmithMaterialElementsImpl.h:682
virtual UE_API const TCHAR * GetParentLabel() const override
Definition DatasmithMaterialElementsImpl.cpp:388
virtual UE_API FMD5Hash CalculateElementHash(bool bForce) override
Definition DatasmithMaterialElementsImpl.cpp:245
TDatasmithReferenceProxy< FDatasmithExpressionInputImpl > Specular
Definition DatasmithMaterialElementsImpl.h:724
TReflected< bool > bTwoSided
Definition DatasmithMaterialElementsImpl.h:740
virtual void SetUseMaterialAttributes(bool bInUseMaterialAttributes) override
Definition DatasmithMaterialElementsImpl.h:694
TDatasmithReferenceProxy< FDatasmithExpressionInputImpl > WorldDisplacement
Definition DatasmithMaterialElementsImpl.h:729
virtual void SetTranslucencyLightingMode(int InMode)
Definition DatasmithMaterialElementsImpl.h:703
virtual IDatasmithExpressionInput & GetEmissiveColor() override
Definition DatasmithMaterialElementsImpl.h:674
virtual UE_API void CustomSerialize(class DirectLink::FSnapshotProxy &Ar) override
Definition DatasmithMaterialElementsImpl.cpp:394
virtual void SetTwoSided(bool bInTwoSided) override
Definition DatasmithMaterialElementsImpl.h:688
TDatasmithReferenceProxy< FDatasmithExpressionInputImpl > ClearCoat
Definition DatasmithMaterialElementsImpl.h:732
virtual IDatasmithExpressionInput & GetRoughness() override
Definition DatasmithMaterialElementsImpl.h:673
virtual UE_API IDatasmithMaterialExpression * GetExpression(int32 Index) override
Definition DatasmithMaterialElementsImpl.cpp:292
virtual void SetShadingModel(const EDatasmithShadingModel InShadingModel) override
Definition DatasmithMaterialElementsImpl.h:716
virtual ~FDatasmithUEPbrMaterialElementImpl()=default
TDatasmithReferenceArrayProxy< IDatasmithMaterialExpression > Expressions
Definition DatasmithMaterialElementsImpl.h:737
virtual int GetTranslucencyLightingMode() const
Definition DatasmithMaterialElementsImpl.h:702
TDatasmithReferenceProxy< FDatasmithExpressionInputImpl > ClearCoatRoughness
Definition DatasmithMaterialElementsImpl.h:733
virtual EDatasmithShadingModel GetShadingModel() const override
Definition DatasmithMaterialElementsImpl.h:717
virtual void SetParentLabel(const TCHAR *InParentLabel) override
Definition DatasmithMaterialElementsImpl.h:713
virtual void SetBlendMode(int InBlendMode) override
Definition DatasmithMaterialElementsImpl.h:685
TDatasmithReferenceProxy< FDatasmithExpressionInputImpl > Metallic
Definition DatasmithMaterialElementsImpl.h:723
TReflected< int32 > BlendMode
Definition DatasmithMaterialElementsImpl.h:739
TDatasmithReferenceProxy< FDatasmithExpressionInputImpl > Opacity
Definition DatasmithMaterialElementsImpl.h:727
TDatasmithReferenceProxy< FDatasmithExpressionInputImpl > AmbientOcclusion
Definition DatasmithMaterialElementsImpl.h:731
TDatasmithReferenceProxy< FDatasmithExpressionInputImpl > Normal
Definition DatasmithMaterialElementsImpl.h:728
TReflected< bool > bUseMaterialAttributes
Definition DatasmithMaterialElementsImpl.h:742
TReflected< FString > ParentLabel
Definition DatasmithMaterialElementsImpl.h:747
TDatasmithReferenceProxy< FDatasmithExpressionInputImpl > WorldPositionOffset
Definition DatasmithMaterialElementsImpl.h:734
virtual void SetMaterialFunctionOnly(bool bInMaterialFunctionOnly) override
Definition DatasmithMaterialElementsImpl.h:697
virtual UE_API IDatasmithMaterialExpression * AddMaterialExpression(const EDatasmithMaterialExpressionType ExpressionType) override
Definition DatasmithMaterialElementsImpl.cpp:314
TReflected< bool > bMaterialFunctionOnly
Definition DatasmithMaterialElementsImpl.h:743
virtual void SetOpacityMaskClipValue(float InClipValue) override
Definition DatasmithMaterialElementsImpl.h:700
virtual bool GetUseMaterialAttributes() const override
Definition DatasmithMaterialElementsImpl.h:693
TReflected< int32 > TranslucencyLightingMode
Definition DatasmithMaterialElementsImpl.h:745
virtual IDatasmithExpressionInput & GetAmbientOcclusion() override
Definition DatasmithMaterialElementsImpl.h:678
virtual void SetIsThinSurface(bool bInIsThinSurface) override
Definition DatasmithMaterialElementsImpl.h:691
virtual bool GetTwoSided() const override
Definition DatasmithMaterialElementsImpl.h:687
TDatasmithReferenceProxy< FDatasmithExpressionInputImpl > Refraction
Definition DatasmithMaterialElementsImpl.h:730
virtual int GetBlendMode() const override
Definition DatasmithMaterialElementsImpl.h:684
TReflected< bool > bIsThinSurface
Definition DatasmithMaterialElementsImpl.h:741
TDatasmithReferenceProxy< FDatasmithExpressionInputImpl > MaterialAttributes
Definition DatasmithMaterialElementsImpl.h:735
virtual UE_API void ResetExpressionGraph(bool bRemoveAllExpressions) override
Definition DatasmithMaterialElementsImpl.cpp:357
virtual IDatasmithExpressionInput & GetRefraction() override
Definition DatasmithMaterialElementsImpl.h:677
virtual IDatasmithExpressionInput & GetWorldPositionOffset() override
Definition DatasmithMaterialElementsImpl.h:681
TDatasmithReferenceProxy< FDatasmithExpressionInputImpl > Roughness
Definition DatasmithMaterialElementsImpl.h:725
virtual bool GetMaterialFunctionOnly() const override
Definition DatasmithMaterialElementsImpl.h:696
TDatasmithReferenceProxy< FDatasmithExpressionInputImpl > EmissiveColor
Definition DatasmithMaterialElementsImpl.h:726
TReflected< EDatasmithShadingModel, uint8 > ShadingModel
Definition DatasmithMaterialElementsImpl.h:748
!it would be cool if these were implemented as subclasses of
Definition SecureHash.h:58
CORE_API void Update(const uint8 *input, uint64 inputLen)
Definition SecureHash.cpp:135
Definition DatasmithMaterialElements.h:9
virtual void SetExpression(IDatasmithMaterialExpression *InExpression)=0
virtual void SetOutputIndex(int32 InOutputIndex)=0
Definition DatasmithMaterialElements.h:23
Definition DatasmithMaterialElements.h:205
Definition DatasmithMaterialElements.h:184
Definition DatasmithMaterialElements.h:38
Definition Array.h:670
UE_REWRITE SizeType Num() const
Definition Array.h:1144
Definition DatasmithSceneGraphSharedState.h:67
bool IsValidIndex(SizeType Index) const
Definition DatasmithSceneGraphSharedState.h:97
virtual int32 Num() const override
Definition DatasmithSceneGraphSharedState.h:71
const TArray< TSharedPtr< T > > & View() const
Definition DatasmithSceneGraphSharedState.h:104
SizeType Add(const TSharedPtr< T > &Element)
Definition DatasmithSceneGraphSharedState.h:98
void Empty()
Definition DatasmithSceneGraphSharedState.h:102
Definition DatasmithSceneGraphSharedState.h:26
const TSharedPtr< T > & View() const
Definition DatasmithSceneGraphSharedState.h:57
TSharedPtr< T > & Edit()
Definition DatasmithSceneGraphSharedState.h:58
Definition SharedPointer.h:1640
Definition SharedPointer.h:692
UE_FORCEINLINE_HINT ObjectType * Get() const
Definition SharedPointer.h:1065
Definition DatasmithMaterialElementsImpl.h:15
void UpdateHashWithArray(FMD5 &MD5, TDatasmithReferenceArrayProxy< ClassType > &Array)
Definition DatasmithMaterialElementsImpl.h:43
FORCEINLINE void UpdateHashWithString(FMD5 &MD5, const FString &String)
Definition DatasmithMaterialElementsImpl.h:16
void UpdateHashWithReference(FMD5 &MD5, TDatasmithReferenceProxy< ReferenceType > &Reference)
Definition DatasmithMaterialElementsImpl.h:33
FORCEINLINE void UpdateHashWithStrings(FMD5 &MD5, const TArray< FString > &Strings)
Definition DatasmithMaterialElementsImpl.h:24
U16 Index
Definition radfft.cpp:71
Definition Color.h:48
Definition SecureHash.h:133
const uint8 * GetBytes() const
Definition SecureHash.h:175
const int32 GetSize() const
Definition SecureHash.h:176
bool IsValid() const
Definition SecureHash.h:138
void Set(FMD5 &MD5)
Definition SecureHash.h:141