Material Definition Language API nvidia_logo_transpbg.gif Up
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
imaterial_definition.h
Go to the documentation of this file.
1 /***************************************************************************************************
2  * Copyright 2019 NVIDIA Corporation. All rights reserved.
3  **************************************************************************************************/
6 
7 #ifndef MI_NEURAYLIB_IMATERIAL_DEFINITION_H
8 #define MI_NEURAYLIB_IMATERIAL_DEFINITION_H
9 
12 
13 namespace mi {
14 
15 namespace neuraylib {
16 
21 class IMaterial_instance;
22 
31 class IMaterial_definition : public
32  mi::base::Interface_declare<0x73753e3d,0x62e4,0x41a7,0xa8,0xf5,0x37,0xeb,0xda,0xd9,0x01,0xd9,
33  neuraylib::IScene_element>
34 {
35 public:
39  virtual const char* get_module() const = 0;
40 
47  virtual const char* get_mdl_name() const = 0;
48 
51  virtual const char* get_prototype() const = 0;
52 
54  virtual bool is_exported() const = 0;
55 
57  virtual Size get_parameter_count() const = 0;
58 
63  virtual const char* get_parameter_name( Size index) const = 0;
64 
69  virtual Size get_parameter_index( const char* name) const = 0;
70 
72  virtual const IType_list* get_parameter_types() const = 0;
73 
79  virtual const IExpression_list* get_defaults() const = 0;
80 
87  virtual const IExpression_list* get_enable_if_conditions() const = 0;
88 
95  virtual Size get_enable_if_users( Size index) const = 0;
96 
104  virtual Size get_enable_if_user( Size index, Size u_index) const = 0;
105 
108  virtual const IAnnotation_block* get_annotations() const = 0;
109 
116  virtual const IAnnotation_list* get_parameter_annotations() const = 0;
117 
149  const IExpression_list* arguments, Sint32* errors = 0) const = 0;
150 
159  virtual const char* get_thumbnail() const = 0;
160 };
161  // end group mi_neuray_mdl_elements
163 
164 } // namespace neuraylib
165 
166 } // namespace mi
167 
168 #endif // MI_NEURAYLIB_IMATERIAL_DEFINITION_H