MDL SDK API nvidia_logo_transpbg.gif Up
mi::neuraylib::ILink_unit Class Referenceabstract

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

#include <imdl_backend.h>

Inheritance diagram for mi::neuraylib::ILink_unit:

Public Types

enum  Function_execution_context {
  FEC_ENVIRONMENT = 0 ,
  FEC_CORE = 1 ,
  FEC_DISPLACEMENT = 2 ,
  FEC_FORCE_32_BIT = 0xFFFFFFFFu
}
 Execution context for functions. More...
 
- Public Types inherited from mi::base::Interface_declare< 0x1df9bbb0, ... >
typedef Interface_declare< id1, ... > Self
 Own type. More...
 
typedef Uuid_t< id1, ... > IID
 Declares the interface ID (IID) of this interface. More...
 
- Public Types inherited from mi::base::IInterface
typedef Uuid_t<0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0> IID
 Declares the interface ID (IID) of this interface. More...
 

Public Member Functions

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. 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. More...
 
virtual Sint32 add_function (const IFunction_call *call, Function_execution_context fexc, const char *fname, IMdl_execution_context *context=0)=0
 Add an MDL function call as a function to this link unit. More...
 
virtual Sint32 add_function (const IFunction_definition *function, Function_execution_context fexc, const char *fname, IMdl_execution_context *context)=0
 Add an MDL function definition as a function to this link unit. More...
 
- Public Member Functions inherited from mi::base::IInterface
virtual Uint32 retain () const =0
 Increments the reference count. More...
 
virtual Uint32 release () const =0
 Decrements the reference count. More...
 
virtual const IInterfaceget_interface (const Uuid &interface_id) const =0
 Acquires a const interface from another. More...
 
template<class T>
const T * get_interface () const
 Acquires a const interface from another. More...
 
virtual IInterfaceget_interface (const Uuid &interface_id)=0
 Acquires a mutable interface from another. More...
 
template<class T>
T * get_interface ()
 Acquires a mutable interface from another. More...
 
virtual Uuid get_iid () const =0
 Returns the interface ID of the most derived interface. More...
 

Additional Inherited Members

- Static Public Member Functions inherited from mi::base::Interface_declare< 0x1df9bbb0, ... >
static bool compare_iid (const Uuid &iid)
 Compares the interface ID iid against the interface ID of this interface and of its ancestors. More...
 
- Static Public Member Functions inherited from mi::base::IInterface
static bool compare_iid (const Uuid &iid)
 Compares the interface ID iid against the interface ID of this interface. More...
 

Detailed Description

Represents a link-unit of an MDL backend.