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 2020 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 
112  virtual Sint32 create_materials(
113  ITransaction* transaction,
114  const char* module_name,
115  const IArray* mdl_data,
116  IMdl_execution_context *context) = 0;
117 
143  virtual IValue_texture* create_texture(
144  ITransaction* transaction,
145  const char* file_path,
146  IType_texture::Shape shape,
147  Float32 gamma,
148  bool shared,
149  Sint32* errors = 0) = 0;
150 
170  virtual IValue_light_profile* create_light_profile(
171  ITransaction* transaction, const char* file_path, bool shared, Sint32* errors = 0) = 0;
172 
193  virtual IValue_bsdf_measurement* create_bsdf_measurement(
194  ITransaction* transaction, const char* file_path, bool shared, Sint32* errors = 0) = 0;
195 
197  virtual IMdl_execution_context* create_execution_context() = 0;
198 };
199 
207  MDL_REPAIR_OPTIONS_FORCE_32_BIT = 0xffffffffU // Undocumented, for alignment only
208 };
209 
210 mi_static_assert(sizeof(Mdl_repair_options) == sizeof(Uint32));
211  // end group mi_neuray_mdl_types
213 
214 } // namespace neuraylib
215 
216 } // namespace mi
217 
218 #endif // MI_NEURAYLIB_IMDL_FACTORY_H