7#ifndef MI_NEURAYLIB_IMDL_FACTORY_H
8#define MI_NEURAYLIB_IMDL_FACTORY_H
20class IExpression_factory;
21class IMdl_execution_context;
22class IMdl_module_builder;
23class IMdl_module_transformer;
26class IValue_bsdf_measurement;
28class IValue_light_profile;
47 mi::base::Interface_declare<0xba936279,0x4b71,0x42a4,0x95,0x37,0x98,0x69,0x97,0xb3,0x47,0x72>
116 const char* file_path,
119 const char* selector,
153 const char* file_path,
187 const char* file_path,
215 const char* module_name,
316 const char* name,
const IArray* parameter_types)
const = 0;
378 const char* root_name,
This interface represents static arrays, i.e., arrays with a fixed number of elements.
Definition: iarray.h:37
A simple string class.
Definition: istring.h:22
Mixin class template for deriving new interface declarations.
Definition: interface_declare.h:43
The interface for creating expressions.
Definition: iexpression.h:655
The interface to MDL expressions.
Definition: iexpression.h:51
The execution context can be used to query status information like error and warning messages concern...
Definition: imdl_execution_context.h:163
Factory for various MDL interfaces and functions.
Definition: imdl_factory.h:48
virtual IMdl_execution_context * create_execution_context()=0
Creates an execution context.
virtual IMdl_module_builder * create_module_builder(ITransaction *transaction, const char *module_name, Mdl_version min_module_version, Mdl_version max_module_version, IMdl_execution_context *context)=0
Creates a module builder for a given module.
virtual IMdl_execution_context * clone(const IMdl_execution_context *context)=0
Clones an execution context.
virtual bool is_valid_mdl_identifier(const char *name) const =0
Indicates whether the given string is a valid MDL identifier.
virtual IType_factory * create_type_factory(ITransaction *transaction)=0
Returns an MDL type factory for the given transaction.
virtual IValue_bsdf_measurement * create_bsdf_measurement(ITransaction *transaction, const char *file_path, bool shared, IMdl_execution_context *context)=0
Creates a value referencing a BSDF measurement identified by an MDL file path.
virtual const IString * encode_type_name(const char *name) const =0
Encodes an MDL type name.
virtual const IString * encode_module_name(const char *name)=0
Encodes a DB or MDL module name.
virtual IMdl_module_transformer * create_module_transformer(ITransaction *transaction, const char *module_name, IMdl_execution_context *context)=0
Creates a module transformer for a given module.
virtual void analyze_uniform(ITransaction *transaction, const char *root_name, bool root_uniform, const IExpression *query_expr, bool &query_result, IString *error_path, IMdl_execution_context *context) const =0
Analyzes whether an expression graph violates the uniform constraints.
virtual IExpression_factory * create_expression_factory(ITransaction *transaction)=0
Returns an MDL expression factory for the given transaction.
virtual IValue_texture * create_texture(ITransaction *transaction, const char *file_path, IType_texture::Shape shape, Float32 gamma, const char *selector, bool shared, IMdl_execution_context *context)=0
Creates a value referencing a texture identified by an MDL file path.
virtual const IString * get_db_module_name(const char *mdl_name)=0
Returns the DB name for the MDL name of a module (or file path for MDLE modules).
virtual const IString * decode_name(const char *name)=0
Decodes a DB or MDL name.
virtual const IString * encode_function_definition_name(const char *name, const IArray *parameter_types) const =0
Encodes a DB or MDL function or material definition name.
virtual IValue_light_profile * create_light_profile(ITransaction *transaction, const char *file_path, bool shared, IMdl_execution_context *context)=0
Creates a value referencing a light profile identified by an MDL file path.
virtual IValue_factory * create_value_factory(ITransaction *transaction)=0
Returns an MDL value factory for the given transaction.
virtual const IString * get_db_definition_name(const char *mdl_name)=0
Returns the DB name for the MDL name of an material or function definition.
The module builder allows to create new MDL modules.
Definition: imdl_module_builder.h:35
A transaction provides a consistent view on the database.
Definition: itransaction.h:82
The interface for creating types.
Definition: itype.h:711
Shape
The possible texture shapes.
Definition: itype.h:553
A BSDF measurement value.
Definition: ivalue.h:558
The interface for creating values.
Definition: ivalue.h:658
A light profile value.
Definition: ivalue.h:545
A texture value.
Definition: ivalue.h:523
float Float32
32-bit float.
Definition: types.h:51
Mdl_version
The MDL version.
Definition: iexpression.h:28
Expressions of the MDL type system.
Mixin class template for deriving new interface declarations.
Common namespace for APIs of NVIDIA Advanced Rendering Center GmbH.
Definition: example_derivatives.dox:5