Material Definition Language API nvidia_logo_transpbg.gif Up
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
mi::neuraylib::ILink_unit Class Referenceabstract

Represents a link-unit of an MDL backend. More...

Inheritance diagram for mi::neuraylib::ILink_unit:
mi::base::Interface_declare< 0x1df9bbb0, 0x5d96, 0x475f, 0x9a, 0xf4, 0x07, 0xed, 0x8c, 0x2d, 0xfd, 0xdb > mi::base::IInterface

Public Member Functions

virtual Sint32 add_environment (const IFunction_call *call, const char *fname, IMdl_execution_context *context=0)=0
 Add an MDL environment function call as a function to this link unit. More...
 
virtual Sint32 add_material_expression (const ICompiled_material *inst, const char *path, const char *fname, IMdl_execution_context *context)=0
 Add an expression that is part of an MDL material instance as a function to this link unit. More...
 
virtual Sint32 add_material_df (const ICompiled_material *material, const char *path, const char *base_fname, IMdl_execution_context *context)=0
 Add an MDL distribution function to this link unit. Note that currently this is only supported for BSDFs. For a BSDF it results in four functions, suffixed with "_init", "_sample", "_evaluate" and "_pdf". More...
 
virtual Sint32 add_material (const ICompiled_material *material, Target_function_description *function_descriptions, Size description_count, IMdl_execution_context *context)=0
 Add (multiple) MDL distribution functions and expressions of a material to this link unit. Functions can be selected by providing a list of Target_function_descriptions. If the first function in the list uses the path "init", one init function will be generated, precalculating values which will be used by the other requested functions. Each other entry in the list needs to define the path, the root of the expression that should be translated. For each distribution function it results in three or four functions, suffixed with "_init" (if first requested path was not "init"), "_sample", "_evaluate", and "_pdf". After calling this function, each element of the list will contain information for later usage in the application, e.g., the argument_block_index and the function_index. More...
 

Additional Inherited Members

- Public Types inherited from mi::base::Interface_declare< 0x1df9bbb0, 0x5d96, 0x475f, 0x9a, 0xf4, 0x07, 0xed, 0x8c, 0x2d, 0xfd, 0xdb >
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 Public Member Functions inherited from mi::base::Interface_declare< 0x1df9bbb0, 0x5d96, 0x475f, 0x9a, 0xf4, 0x07, 0xed, 0x8c, 0x2d, 0xfd, 0xdb >
static bool compare_iid (const Uuid &iid)
 Compares the interface ID iid against the interface ID of this interface and of its ancestors. More...
 

Detailed Description

Represents a link-unit of an MDL backend.