Material Definition Language API nvidia_logo_transpbg.gif Up
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
imdl_factory.h
Go to the documentation of this file.
1 /***************************************************************************************************
2  * Copyright 2018 NVIDIA Corporation. All rights reserved.
3  **************************************************************************************************/
6 
7 #ifndef MI_NEURAYLIB_IMDL_FACTORY_H
8 #define MI_NEURAYLIB_IMDL_FACTORY_H
9 
11 #include <mi/neuraylib/itype.h>
12 
13 namespace mi {
14 
15 class IArray;
16 
17 namespace neuraylib {
18 
19 class IExpression_factory;
20 class IMdl_execution_context;
21 class ITransaction;
22 class IType_factory;
23 class IValue_bsdf_measurement;
24 class IValue_factory;
25 class IValue_light_profile;
26 class IValue_texture;
27 
32 class IMdl_factory : public
37  mi::base::Interface_declare<0xba936279,0x4b71,0x42a4,0x95,0x37,0x98,0x69,0x97,0xb3,0x47,0x72>
38 {
39 public:
41  virtual IType_factory* create_type_factory( ITransaction* transaction) = 0;
42 
44  virtual IValue_factory* create_value_factory( ITransaction* transaction) = 0;
45 
47  virtual IExpression_factory* create_expression_factory( ITransaction* transaction) = 0;
48 
53  //
106  virtual Sint32 create_variants(
107  ITransaction* transaction, const char* module_name, const IArray* variant_data) = 0;
108 
109  virtual Sint32 create_materials(
110  ITransaction* transaction, const char* module_name, const IArray* material_data) = 0;
111 
137  virtual IValue_texture* create_texture(
138  ITransaction* transaction,
139  const char* file_path,
140  IType_texture::Shape shape,
141  Float32 gamma,
142  bool shared,
143  Sint32* errors = 0) = 0;
144 
164  virtual IValue_light_profile* create_light_profile(
165  ITransaction* transaction, const char* file_path, bool shared, Sint32* errors = 0) = 0;
166 
187  virtual IValue_bsdf_measurement* create_bsdf_measurement(
188  ITransaction* transaction, const char* file_path, bool shared, Sint32* errors = 0) = 0;
189 
191  virtual IMdl_execution_context* create_execution_context() = 0;
192 };
193  // end group mi_neuray_mdl_types
195 
196 } // namespace neuraylib
197 
198 } // namespace mi
199 
200 #endif // MI_NEURAYLIB_IMDL_FACTORY_H