UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
DatasmithMaterialElements.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2#pragma once
3
5
7
9{
10public:
11 UE_DEPRECATED(4.27, "IDatasmithExpressionInput now derive from IDatasmithElement, please use GetName() instead")
12 const TCHAR* GetInputName() const { return GetName(); }
13
15 virtual const IDatasmithMaterialExpression* GetExpression() const = 0;
17
18 virtual int32 GetOutputIndex() const = 0;
19 virtual void SetOutputIndex( int32 InOutputIndex ) = 0;
20};
21
23{
24public:
25 virtual ~IDatasmithExpressionOutput() = default;
26
27 UE_DEPRECATED(4.27, "IDatasmithExpressionOutput now derive from IDatasmithElement, please use GetName() instead")
28 const TCHAR* GetOutputName() const { return GetName(); }
29 UE_DEPRECATED(4.27, "IDatasmithExpressionOutput now derive from IDatasmithElement, please use SetName() instead")
31};
32
38{
39public:
40 virtual ~IDatasmithMaterialExpression() = default;
41
42 //Needed while we have the deprecated IsA() implementation to avoid declaration conflict.
44
45 UE_DEPRECATED(4.27, "Deprecated, please use GetExpressionType() instead")
48 UE_DEPRECATED(4.27, "IDatasmithMaterialExpression now derive from IDatasmithElement, please use IsSubType() or GetExpressionType() instead")
50
52
54 virtual void ConnectExpression( IDatasmithExpressionInput& ExpressionInput ) = 0;
55
57 virtual void ConnectExpression( IDatasmithExpressionInput& ExpressionInput, int32 OutputIndex ) = 0;
58
59 virtual int32 GetInputCount() const = 0;
61 virtual const IDatasmithExpressionInput* GetInput( int32 Index ) const = 0;
62
64 virtual int32 GetDefaultOutputIndex() const = 0;
65 virtual void SetDefaultOutputIndex( int32 OutputIndex ) = 0;
66
68 virtual void ResetExpression() = 0;
69};
70
72{
73public:
74 virtual ~IDatasmithExpressionParameter() = default;
75
76 virtual const TCHAR* GetGroupName() const = 0;
77 virtual void SetGroupName( const TCHAR* InGroupName ) = 0;
78};
79
84{
85public:
86 virtual bool& GetBool() = 0;
87 virtual const bool& GetBool() const = 0;
88};
89
91{
92public:
93 virtual FLinearColor& GetColor() = 0;
94 virtual const FLinearColor& GetColor() const = 0;
95};
96
98{
99public:
100 virtual float& GetScalar() = 0;
101 virtual const float& GetScalar() const = 0;
102};
103
105{
106public:
107 virtual const TCHAR* GetTexturePathName() const = 0;
108 virtual void SetTexturePathName( const TCHAR* InTexturePathName ) = 0;
109
115
124};
125
127{
128public:
129 virtual int32 GetCoordinateIndex() const = 0;
131
132 virtual float GetUTiling() const = 0;
133 virtual void SetUTiling( float InUTiling ) = 0;
134
135 virtual float GetVTiling() const = 0;
136 virtual void SetVTiling( float InVTiling ) = 0;
137};
138
156
157// see UMaterialExpressionCustom
159{
160public:
161 virtual void SetCode(const TCHAR* InCode) = 0;
162 virtual const TCHAR* GetCode() const = 0;
163
166
167 virtual void SetDescription(const TCHAR* InDescription) = 0;
168 virtual const TCHAR* GetDescription() const = 0;
169
170 virtual int32 GetIncludeFilePathCount() const = 0;
171 virtual void AddIncludeFilePath(const TCHAR* Path) = 0;
172 virtual const TCHAR* GetIncludeFilePath(int32 Index) const = 0;
173
174 virtual int32 GetAdditionalDefineCount() const = 0;
175 virtual void AddAdditionalDefine(const TCHAR* Define) = 0;
176 virtual const TCHAR* GetAdditionalDefine(int32 Index) const = 0;
177
178 virtual int32 GetArgumentNameCount() const = 0;
179 virtual void SetArgumentName(int32 ArgIndex, const TCHAR* ArgName) = 0;
180 virtual const TCHAR* GetArgumentName(int32 ArgIndex) const = 0;
181};
182
203
205{
206public:
207 virtual void SetFunctionPathName( const TCHAR* InFunctionPathName ) = 0;
208 virtual const TCHAR* GetFunctionPathName() const = 0;
209
210};
211
213{
214public:
228
230 virtual int GetBlendMode() const = 0;
231 virtual void SetBlendMode( int InBlendMode ) = 0;
232
233 virtual bool GetTwoSided() const = 0;
234 virtual void SetTwoSided( bool bTwoSided ) = 0;
235
236 virtual bool GetIsThinSurface() const = 0;
237 virtual void SetIsThinSurface(bool bIsThinSurface) = 0;
238
239 virtual bool GetUseMaterialAttributes() const = 0;
241
243 virtual bool GetMaterialFunctionOnly() const = 0;
245
246 virtual float GetOpacityMaskClipValue() const = 0;
247 virtual void SetOpacityMaskClipValue(float InClipValue) = 0;
248
249 virtual int GetTranslucencyLightingMode() const = 0;
251 virtual void SetTranslucencyLightingMode(int InMode) = 0;
252
253 virtual int32 GetExpressionsCount() const = 0;
255 virtual int32 GetExpressionIndex( const IDatasmithMaterialExpression* Expression ) const = 0;
256
258
259 template< typename T >
261 {
262 return nullptr;
263 }
264
267
269 virtual void SetParentLabel( const TCHAR* InParentLabel ) = 0;
270 virtual const TCHAR* GetParentLabel() const = 0;
271
274};
275
276template<>
277inline IDatasmithMaterialExpressionBool* IDatasmithUEPbrMaterialElement::AddMaterialExpression< IDatasmithMaterialExpressionBool >()
278{
280}
281
282template<>
283inline IDatasmithMaterialExpressionColor* IDatasmithUEPbrMaterialElement::AddMaterialExpression< IDatasmithMaterialExpressionColor >()
284{
286}
287
288template<>
289inline IDatasmithMaterialExpressionFlattenNormal* IDatasmithUEPbrMaterialElement::AddMaterialExpression< IDatasmithMaterialExpressionFlattenNormal >()
290{
292}
293
294template<>
295inline IDatasmithMaterialExpressionFunctionCall* IDatasmithUEPbrMaterialElement::AddMaterialExpression< IDatasmithMaterialExpressionFunctionCall >()
296{
298}
299
300template<>
301inline IDatasmithMaterialExpressionGeneric* IDatasmithUEPbrMaterialElement::AddMaterialExpression< IDatasmithMaterialExpressionGeneric >()
302{
304}
305
306template<>
307inline IDatasmithMaterialExpressionScalar* IDatasmithUEPbrMaterialElement::AddMaterialExpression< IDatasmithMaterialExpressionScalar >()
308{
310}
311
312template<>
313inline IDatasmithMaterialExpressionTexture* IDatasmithUEPbrMaterialElement::AddMaterialExpression< IDatasmithMaterialExpressionTexture >()
314{
316}
317
318template<>
319inline IDatasmithMaterialExpressionTextureCoordinate* IDatasmithUEPbrMaterialElement::AddMaterialExpression< IDatasmithMaterialExpressionTextureCoordinate >()
320{
322}
323
324template<>
325inline IDatasmithMaterialExpressionCustom* IDatasmithUEPbrMaterialElement::AddMaterialExpression< IDatasmithMaterialExpressionCustom >()
326{
328}
OODEFFUNC typedef void(OODLE_CALLBACK t_fp_OodleCore_Plugin_Free)(void *ptr)
#define UE_DEPRECATED(Version, Message)
Definition CoreMiscDefines.h:302
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
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
EDatasmithShaderDataType
Definition DatasmithDefinitions.h:323
EDatasmithShadingModel
Definition DatasmithDefinitions.h:357
EDatasmithMaterialExpressionType
Definition DatasmithDefinitions.h:90
const bool
Definition NetworkReplayStreaming.h:178
#define ArgName(Type, Name)
Definition TypedElementQueryCapabilityForwarder.h:45
Definition IDatasmithSceneElements.h:626
Definition IDatasmithSceneElements.h:28
virtual bool IsA(EDatasmithElementType Type) const =0
virtual const TCHAR * GetName() const =0
virtual void SetName(const TCHAR *InName)=0
Definition DatasmithMaterialElements.h:9
virtual void SetExpression(IDatasmithMaterialExpression *InExpression)=0
virtual int32 GetOutputIndex() const =0
virtual void SetOutputIndex(int32 InOutputIndex)=0
virtual IDatasmithMaterialExpression * GetExpression()=0
virtual const IDatasmithMaterialExpression * GetExpression() const =0
const TCHAR * GetInputName() const
Definition DatasmithMaterialElements.h:12
Definition DatasmithMaterialElements.h:23
virtual ~IDatasmithExpressionOutput()=default
const TCHAR * GetOutputName() const
Definition DatasmithMaterialElements.h:28
void SetOutputName(const TCHAR *InOutputName)
Definition DatasmithMaterialElements.h:30
Definition DatasmithMaterialElements.h:72
virtual void SetGroupName(const TCHAR *InGroupName)=0
virtual ~IDatasmithExpressionParameter()=default
virtual const TCHAR * GetGroupName() const =0
Definition DatasmithMaterialElements.h:84
virtual const bool & GetBool() const =0
Definition DatasmithMaterialElements.h:91
virtual FLinearColor & GetColor()=0
virtual const FLinearColor & GetColor() const =0
Definition DatasmithMaterialElements.h:159
virtual void SetCode(const TCHAR *InCode)=0
virtual int32 GetAdditionalDefineCount() const =0
virtual int32 GetIncludeFilePathCount() const =0
virtual const TCHAR * GetArgumentName(int32 ArgIndex) const =0
virtual const TCHAR * GetIncludeFilePath(int32 Index) const =0
virtual void AddIncludeFilePath(const TCHAR *Path)=0
virtual void SetDescription(const TCHAR *InDescription)=0
virtual const TCHAR * GetAdditionalDefine(int32 Index) const =0
virtual void SetArgumentName(int32 ArgIndex, const TCHAR *ArgName)=0
virtual void SetOutputType(EDatasmithShaderDataType InOutputType)=0
virtual void AddAdditionalDefine(const TCHAR *Define)=0
virtual EDatasmithShaderDataType GetOutputType() const =0
virtual int32 GetArgumentNameCount() const =0
virtual const TCHAR * GetDescription() const =0
virtual const TCHAR * GetCode() const =0
Definition DatasmithMaterialElements.h:140
virtual IDatasmithExpressionInput & GetNormal()=0
virtual const IDatasmithExpressionInput & GetNormal() const =0
virtual const IDatasmithExpressionInput & GetFlatness() const =0
virtual IDatasmithExpressionInput & GetFlatness()=0
Definition DatasmithMaterialElements.h:205
virtual void SetFunctionPathName(const TCHAR *InFunctionPathName)=0
virtual const TCHAR * GetFunctionPathName() const =0
Definition DatasmithMaterialElements.h:184
virtual const TSharedPtr< IDatasmithKeyValueProperty > & GetPropertyByName(const TCHAR *Name) const =0
virtual TSharedPtr< IDatasmithKeyValueProperty > & GetProperty(int32 i)=0
virtual const TSharedPtr< IDatasmithKeyValueProperty > & GetProperty(int32 i) const =0
virtual const TCHAR * GetExpressionName() const =0
virtual TSharedPtr< IDatasmithKeyValueProperty > & GetPropertyByName(const TCHAR *Name)=0
virtual void AddProperty(const TSharedPtr< IDatasmithKeyValueProperty > &Property)=0
virtual void SetExpressionName(const TCHAR *InExpressionName)=0
virtual int32 GetPropertiesCount() const =0
Definition DatasmithMaterialElements.h:98
virtual const float & GetScalar() const =0
Definition DatasmithMaterialElements.h:127
virtual void SetCoordinateIndex(int32 InCoordinateIndex)=0
virtual void SetVTiling(float InVTiling)=0
virtual void SetUTiling(float InUTiling)=0
Definition DatasmithMaterialElements.h:105
virtual void SetTexturePathName(const TCHAR *InTexturePathName)=0
virtual const IDatasmithExpressionInput & GetInputCoordinate() const =0
virtual const TCHAR * GetTexturePathName() const =0
virtual IDatasmithExpressionInput & GetInputCoordinate()=0
Definition DatasmithMaterialElements.h:38
virtual const IDatasmithExpressionInput * GetInput(int32 Index) const =0
EDatasmithMaterialExpressionType GetType() const
Definition DatasmithMaterialElements.h:46
virtual ~IDatasmithMaterialExpression()=default
virtual IDatasmithExpressionInput * GetInput(int32 Index)=0
virtual EDatasmithMaterialExpressionType GetExpressionType() const =0
UE_DEPRECATED(4.27, "IDatasmithMaterialExpression now derive from IDatasmithElement, please use IsSubType() or GetExpressionType() instead") bool IsA(const EDatasmithMaterialExpressionType ExpressionType) const
Definition DatasmithMaterialElements.h:48
virtual bool IsSubType(const EDatasmithMaterialExpressionType ExpressionType) const =0
virtual void ConnectExpression(IDatasmithExpressionInput &ExpressionInput)=0
virtual void ResetExpression()=0
virtual int32 GetInputCount() const =0
virtual void SetDefaultOutputIndex(int32 OutputIndex)=0
virtual bool IsA(EDatasmithElementType Type) const=0
virtual int32 GetDefaultOutputIndex() const =0
virtual void ConnectExpression(IDatasmithExpressionInput &ExpressionInput, int32 OutputIndex)=0
Definition DatasmithMaterialElements.h:213
virtual void SetBlendMode(int InBlendMode)=0
virtual IDatasmithMaterialExpression * GetExpression(int32 Index)=0
virtual IDatasmithExpressionInput & GetSpecular()=0
virtual void SetIsThinSurface(bool bIsThinSurface)=0
virtual IDatasmithExpressionInput & GetMaterialAttributes()=0
virtual IDatasmithExpressionInput & GetClearCoatRoughness()=0
virtual IDatasmithExpressionInput & GetWorldPositionOffset()=0
virtual IDatasmithExpressionInput & GetClearCoat()=0
virtual void ResetExpressionGraph(bool bRemoveAllExpressions)=0
virtual EDatasmithShadingModel GetShadingModel() const =0
virtual IDatasmithExpressionInput & GetMetallic()=0
virtual IDatasmithExpressionInput & GetOpacity()=0
virtual bool GetUseMaterialAttributes() const =0
T * AddMaterialExpression()
Definition DatasmithMaterialElements.h:260
virtual bool GetMaterialFunctionOnly() const =0
virtual int GetBlendMode() const =0
virtual IDatasmithExpressionInput & GetRefraction()=0
virtual const TCHAR * GetParentLabel() const =0
virtual void SetOpacityMaskClipValue(float InClipValue)=0
virtual bool GetIsThinSurface() const =0
virtual int32 GetExpressionIndex(const IDatasmithMaterialExpression *Expression) const =0
virtual void SetTranslucencyLightingMode(int InMode)=0
virtual float GetOpacityMaskClipValue() const =0
virtual void SetUseMaterialAttributes(bool bInUseMaterialAttributes)=0
virtual bool GetTwoSided() const =0
virtual IDatasmithExpressionInput & GetEmissiveColor()=0
virtual void SetParentLabel(const TCHAR *InParentLabel)=0
virtual IDatasmithExpressionInput & GetRoughness()=0
virtual IDatasmithExpressionInput & GetNormal()=0
virtual void SetShadingModel(const EDatasmithShadingModel InShadingModel)=0
virtual IDatasmithExpressionInput & GetAmbientOcclusion()=0
virtual void SetMaterialFunctionOnly(bool bInMaterialFunctionOnly)=0
virtual int32 GetExpressionsCount() const =0
virtual IDatasmithExpressionInput & GetBaseColor()=0
virtual void SetTwoSided(bool bTwoSided)=0
virtual int GetTranslucencyLightingMode() const =0
virtual IDatasmithMaterialExpression * AddMaterialExpression(const EDatasmithMaterialExpressionType ExpressionType)=0
U16 Index
Definition radfft.cpp:71
Definition Color.h:48