4 #include "IDatasmithSceneElements.h"
11 virtual const TCHAR* GetInputName()
const = 0;
17 virtual int32 GetOutputIndex()
const = 0;
18 virtual void SetOutputIndex( int32 InOutputIndex ) = 0;
26 virtual const TCHAR* GetOutputName()
const = 0;
27 virtual void SetOutputName(
const TCHAR* InOutputName ) = 0;
35 virtual const TCHAR* GetGroupName()
const = 0;
36 virtual void SetGroupName(
const TCHAR* InGroupName ) = 0;
39 enum class EDatasmithMaterialExpressionType
57 virtual const TCHAR*
GetName()
const = 0;
58 virtual void SetName(
const TCHAR* InName ) = 0;
60 virtual EDatasmithMaterialExpressionType GetType()
const = 0;
61 bool IsA(
const EDatasmithMaterialExpressionType ExpressionType )
const {
return ExpressionType == GetType(); }
69 virtual int32 GetInputCount()
const = 0;
75 virtual void SetDefaultOutputIndex( int32 OutputIndex ) = 0;
84 virtual bool& GetBool() = 0;
85 virtual const bool& GetBool()
const = 0;
91 virtual FLinearColor& GetColor() = 0;
92 virtual const FLinearColor& GetColor()
const = 0;
98 virtual float& GetScalar() = 0;
99 virtual const float& GetScalar()
const = 0;
105 virtual const TCHAR* GetTexturePathName()
const = 0;
106 virtual void SetTexturePathName(
const TCHAR* InTexturePathName ) = 0;
127 virtual int32 GetCoordinateIndex()
const = 0;
128 virtual void SetCoordinateIndex( int32 InCoordinateIndex ) = 0;
130 virtual float GetUTiling()
const = 0;
131 virtual void SetUTiling(
float InUTiling ) = 0;
133 virtual float GetVTiling()
const = 0;
134 virtual void SetVTiling(
float InCoordinateIndex ) = 0;
158 virtual void SetExpressionName(
const TCHAR* InExpressionName ) = 0;
159 virtual const TCHAR* GetExpressionName()
const = 0;
165 virtual const TSharedPtr< IDatasmithKeyValueProperty >&
GetProperty(int32 i)
const = 0;
166 virtual TSharedPtr< IDatasmithKeyValueProperty >&
GetProperty(int32 i) = 0;
169 virtual const TSharedPtr< IDatasmithKeyValueProperty >&
GetPropertyByName(
const TCHAR* Name)
const = 0;
170 virtual TSharedPtr< IDatasmithKeyValueProperty >&
GetPropertyByName(
const TCHAR* Name) = 0;
173 virtual void AddProperty(
const TSharedPtr< IDatasmithKeyValueProperty >& Property ) = 0;
179 virtual void SetFunctionPathName(
const TCHAR* InFunctionPathName ) = 0;
180 virtual const TCHAR* GetFunctionPathName()
const = 0;
199 virtual int GetBlendMode()
const = 0;
200 virtual void SetBlendMode(
int bInBlendMode ) = 0;
202 virtual bool GetTwoSided()
const = 0;
203 virtual void SetTwoSided(
bool bTwoSided ) = 0;
205 virtual bool GetUseMaterialAttributes()
const = 0;
206 virtual void SetUseMaterialAttributes(
bool bInUseMaterialAttributes ) = 0;
209 virtual bool GetMaterialFunctionOnly()
const = 0;
210 virtual void SetMaterialFunctionOnly(
bool bInMaterialFunctionOnly) = 0;
212 virtual int32 GetExpressionsCount()
const = 0;
218 template<
typename T >
219 T* AddMaterialExpression()
224 virtual void SetParentLabel(
const TCHAR* InParentLabel ) = 0;
225 virtual const TCHAR* GetParentLabel()
const = 0;
231 return static_cast< IDatasmithMaterialExpressionBool* >( AddMaterialExpression( EDatasmithMaterialExpressionType::ConstantBool ) );
237 return static_cast< IDatasmithMaterialExpressionColor* >( AddMaterialExpression( EDatasmithMaterialExpressionType::ConstantColor ) );
243 return static_cast< IDatasmithMaterialExpressionFlattenNormal* >( AddMaterialExpression( EDatasmithMaterialExpressionType::FlattenNormal ) );
249 return static_cast< IDatasmithMaterialExpressionFunctionCall* >( AddMaterialExpression( EDatasmithMaterialExpressionType::FunctionCall ) );
255 return static_cast< IDatasmithMaterialExpressionGeneric* >( AddMaterialExpression( EDatasmithMaterialExpressionType::Generic ) );
261 return static_cast< IDatasmithMaterialExpressionScalar* >( AddMaterialExpression( EDatasmithMaterialExpressionType::ConstantScalar ) );
267 return static_cast< IDatasmithMaterialExpressionTexture* >( AddMaterialExpression( EDatasmithMaterialExpressionType::Texture ) );
273 return static_cast< IDatasmithMaterialExpressionTextureCoordinate* >( AddMaterialExpression( EDatasmithMaterialExpressionType::TextureCoordinate ) );