MDL SDK API nvidia_logo_transpbg.gif Up
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
imaterial_instance.h
Go to the documentation of this file.
1 /***************************************************************************************************
2  * Copyright 2022 NVIDIA Corporation. All rights reserved.
3  **************************************************************************************************/
6 
7 #ifndef MI_NEURAYLIB_IMATERIAL_INSTANCE_H
8 #define MI_NEURAYLIB_IMATERIAL_INSTANCE_H
9 
14 
15 namespace mi {
16 
17 namespace neuraylib {
18 
23 class ICompiled_material;
24 class IMdl_execution_context;
25 
31 class IMaterial_instance : public
32  mi::base::Interface_declare<0x037ec156,0x281d,0x466a,0xa1,0x56,0x3e,0xd6,0x83,0xe9,0x5a,0x00,
33  neuraylib::IScene_element>
34 {
35 public:
42  COMPILATION_OPTIONS_FORCE_32_BIT = 0xffffffffU // Undocumented, for alignment only
43  };
44 
45  mi_static_assert( sizeof( Compilation_options) == sizeof( mi::Uint32));
46 
101  Uint32 flags,
102  IMdl_execution_context* context = 0) const = 0;
103 
106  virtual const char* get_material_definition() const = 0;
107 
110  virtual const char* get_mdl_material_definition() const = 0;
111 
114  virtual const IType* get_return_type() const = 0;
115 
118  virtual Size get_parameter_count() const = 0;
119 
122  virtual const char* get_parameter_name( Size index) const = 0;
123 
126  virtual Size get_parameter_index( const char* name) const = 0;
127 
130  virtual const IType_list* get_parameter_types() const = 0;
131 
134  virtual const IExpression_list* get_arguments() const = 0;
135 
138  virtual Sint32 set_arguments( const IExpression_list* arguments) = 0;
139 
142  virtual Sint32 set_argument( Size index, const IExpression* argument) = 0;
143 
146  virtual Sint32 set_argument( const char* name, const IExpression* argument) = 0;
147 
150  virtual Sint32 reset_argument( Size index) = 0;
151 
154  virtual Sint32 reset_argument( const char* name) = 0;
155 
158  virtual bool is_default() const = 0;
159 
162  virtual bool is_valid( IMdl_execution_context* context) const = 0;
163 
166  virtual Sint32 repair(
167  Uint32 flags,
168  IMdl_execution_context* context) = 0;
169 };
170  // end group mi_neuray_mdl_elements
172 
173 } // namespace neuraylib
174 
175 } // namespace mi
176 
177 #endif // MI_NEURAYLIB_IMATERIAL_INSTANCE_H