Material Definition Language API nvidia_logo_transpbg.gif Up
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
imodule.h
Go to the documentation of this file.
1 /***************************************************************************************************
2  * Copyright 2020 NVIDIA Corporation. All rights reserved.
3  **************************************************************************************************/
6 
7 #ifndef MI_NEURAYLIB_IMODULE_H
8 #define MI_NEURAYLIB_IMODULE_H
9 
11 
12 
13 namespace mi {
14 
15 class IArray;
16 
17 namespace neuraylib {
18 
19 class IAnnotation_block;
20 class IAnnotation_definition;
21 class IExpression_list;
22 class IMdl_execution_context;
23 class IType_list;
24 class IType_resource;
25 class IValue_list;
26 class IValue_resource;
27  // end group mi_neuray_mdl_elements
161 
166 class IModule : public
171  mi::base::Interface_declare<0xe283b0ee,0x712b,0x4bdb,0xa2,0x13,0x32,0x77,0x7a,0x98,0xf9,0xa6,
172  neuraylib::IScene_element>
173 {
174 public:
179  virtual const char* get_filename() const = 0;
180 
187  virtual const char* get_mdl_name() const = 0;
188 
190  virtual Size get_import_count() const = 0;
191 
196  virtual const char* get_import( Size index) const = 0;
197 
199  virtual const IType_list* get_types() const = 0;
200 
202  virtual const IValue_list* get_constants() const = 0;
203 
205  virtual Size get_function_count() const = 0;
206 
213  virtual const char* get_function( Size index) const = 0;
214 
216  virtual Size get_material_count() const = 0;
217 
224  virtual const char* get_material( Size index) const = 0;
225 
228  virtual Size get_resources_count() const = 0;
229 
234  virtual const IType_resource* get_resource_type( Size index) const = 0;
235 
240  virtual const char* get_resource_mdl_file_path( Size index) const = 0;
241 
247  virtual const char* get_resource_name( Size index) const = 0;
248 
250  virtual Size get_annotation_definition_count() const = 0;
251 
257  virtual const IAnnotation_definition* get_annotation_definition(Size index) const = 0;
258 
263  virtual const IAnnotation_definition* get_annotation_definition(const char *name) const = 0;
264 
266  virtual const IAnnotation_block* get_annotations() const = 0;
267 
272  virtual bool is_standard_module() const = 0;
273 
289  virtual const IArray* get_function_overloads(
290  const char* name, const IExpression_list* arguments = 0) const = 0;
291 
307  virtual const IArray* get_function_overloads(
308  const char* name, const char* param_sig) const = 0;
309 
313  virtual bool is_valid(IMdl_execution_context* context) const = 0;
314 
326  virtual Sint32 reload(bool recursive, IMdl_execution_context* context) = 0;
327 
342  virtual Sint32 reload_from_string(
343  const char* module_source,
344  bool recursive,
345  IMdl_execution_context* context) = 0;
346 };
347  // end group mi_neuray_mdl_elements
349 
350 } // namespace neuraylib
351 
352 } // namespace mi
353 
354 #endif // MI_NEURAYLIB_IMODULE_H