Factory for various MDL interfaces and functions. More...
Public Member Functions | |
virtual IType_factory * | create_type_factory (ITransaction *transaction)=0 |
Returns an MDL type factory for the given transaction. More... | |
virtual IValue_factory * | create_value_factory (ITransaction *transaction)=0 |
Returns an MDL value factory for the given transaction. More... | |
virtual IExpression_factory * | create_expression_factory (ITransaction *transaction)=0 |
Returns an MDL expression factory for the given transaction. More... | |
virtual Sint32 | create_variants (ITransaction *transaction, const char *module_name, const IArray *variant_data)=0 |
Creates a new MDL module containing variants. More... | |
virtual IValue_texture * | create_texture (ITransaction *transaction, const char *file_path, IType_texture::Shape shape, Float32 gamma, bool shared, Sint32 *errors=0)=0 |
Creates a value referencing a texture identified by an MDL file path. More... | |
virtual IValue_light_profile * | create_light_profile (ITransaction *transaction, const char *file_path, bool shared, Sint32 *errors=0)=0 |
Creates a value referencing a light profile identified by an MDL file path. More... | |
virtual IValue_bsdf_measurement * | create_bsdf_measurement (ITransaction *transaction, const char *file_path, bool shared, Sint32 *errors=0)=0 |
Creates a value referencing a BSDF measurement identified by an MDL file path. More... | |
virtual IMdl_execution_context * | create_execution_context ()=0 |
Creates an execution context. More... | |
Additional Inherited Members | |
![]() | |
typedef Interface_declare< id1, id2, id3, id4, id5, id6, id7, id8, id9, id10, id11, IInterface > | Self |
Own type. More... | |
typedef Uuid_t< id1, id2, id3, id4, id5, id6, id7, id8, id9, id10, id11 > | IID |
Declares the interface ID (IID) of this interface. More... | |
![]() | |
static bool | compare_iid (const Uuid &iid) |
Compares the interface ID iid against the interface ID of this interface and of its ancestors. More... | |
Factory for various MDL interfaces and functions.
This interface gives access to the type, value, and expressions factories. It also allows to create material and function variants.
|
pure virtual |
Creates a value referencing a BSDF measurement identified by an MDL file path.
transaction | The transaction to be used. |
file_path | The absolute MDL file path that identifies the BSDF measurement. The MDL search paths are used to resolve the file path. See section 2.2 in [MDLLS] for details. |
shared | Indicates whether you want to re-use the DB element for that BSDF measurement if it has already been loaded, or if you want to create a new DB element in all cases. Note that sharing is based on the location where the BSDF measurement is finally located and includes sharing with instances that have not explicitly been loaded via this method, e.g., BSDF measurements in defaults. |
errors | An optional pointer to an mi::Sint32 to which an error code will be written. The error codes have the following meaning:
|
NULL
in case of failure.
|
pure virtual |
Creates an execution context.
|
pure virtual |
Returns an MDL expression factory for the given transaction.
|
pure virtual |
Creates a value referencing a light profile identified by an MDL file path.
transaction | The transaction to be used. |
file_path | The absolute MDL file path that identifies the light profile. The MDL search paths are used to resolve the file path. See section 2.2 in [MDLLS] for details. |
shared | Indicates whether you want to re-use the DB element for that light profile if it has already been loaded, or if you want to create a new DB element in all cases. Note that sharing is based on the location where the light profile is finally located and includes sharing with instances that have not explicitly been loaded via this method, e.g., light profiles in defaults. |
errors | An optional pointer to an mi::Sint32 to which an error code will be written. The error codes have the following meaning:
|
NULL
in case of failure.
|
pure virtual |
Creates a value referencing a texture identified by an MDL file path.
transaction | The transaction to be used. |
file_path | The absolute MDL file path that identifies the texture. The MDL search paths are used to resolve the file path. See section 2.2 in [MDLLS] for details. |
shape | The value that is returned by mi::neuraylib::IType_texture::get_shape() on the type corresponding to the return value. |
gamma | The value that is returned by mi::neuraylib::ITexture::get_gamma() on the DB element referenced by the return value. |
shared | Indicates whether you want to re-use the DB elements for that texture if it has already been loaded, or if you want to create new DB elements in all cases. Note that sharing is based on the location where the texture is finally located and includes sharing with instances that have not explicitly been loaded via this method, e.g., textures in defaults. |
errors | An optional pointer to an mi::Sint32 to which an error code will be written. The error codes have the following meaning:
|
NULL
in case of failure.
|
pure virtual |
Returns an MDL type factory for the given transaction.
|
pure virtual |
Returns an MDL value factory for the given transaction.
|
pure virtual |
Creates a new MDL module containing variants.
A variant is basically a clone of another material or function definition (the prototype) with different defaults.
transaction | The transaction to be used. |
module_name | The fully-qualified MDL name of the new module (including package names, starts with "::"). |
variant_data | A static or dynamic array of structures of type Variant_data . Such a structure has the following members:
|
module_name
is invalid.module_name
.transaction
, module_name
or variant_data
are invalid, variant_data
is empty, or a struct member for the prototype name, defaults, or annotations has an incorrect type.