MDL SDK API nvidia_logo_transpbg.gif Up
mdl_generated_dag.h File Reference

Interfaces for the MDL DAG Intermediate Representation. More...

Go to the source code of this file.

Classes

class  mi::mdl::DAG_hash
 A hash value. More...
 
class  mi::mdl::DAG_node
 A node inside the DAG Intermediate Representation. More...
 
class  mi::mdl::DAG_constant
 A DAG IR constant. More...
 
class  mi::mdl::DAG_temporary
 A DAG IR temporary reference. More...
 
class  mi::mdl::DAG_call
 A DAG IR call. More...
 
struct  mi::mdl::DAG_call::Call_argument
 A simple value helper class, a pair of an argument expression and a parameter name. More...
 
class  mi::mdl::DAG_parameter
 A DAG IR parameter reference. More...
 
class  mi::mdl::IResource_tagger
 An interface to interrogate tag values for resource values. More...
 
class  mi::mdl::IDag_builder
 A Builder for DAG graphs. More...
 
class  mi::mdl::ICall_evaluator
 A Helper interface to do renderer specific constant folding. More...
 
class  mi::mdl::IGenerated_code_dag
 A container of DAG representations of a module containing materials, functions, constants, types and module annotations. More...
 
class  mi::mdl::IGenerated_code_dag::DAG_node_factory
 The node factory for DAG IR nodes. More...
 
class  mi::mdl::IMaterial_instance
 An instantiated material. More...
 

Namespaces

namespace  mi
 Common namespace for APIs of NVIDIA Advanced Rendering Center GmbH.
 

Enumerations

enum  mi::mdl::Dag_error_code {
  mi::mdl::EC_NONE ,
  mi::mdl::EC_INVALID_INDEX ,
  mi::mdl::EC_MATERIAL_HAS_ERROR ,
  mi::mdl::EC_TOO_FEW_ARGUMENTS ,
  mi::mdl::EC_TOO_MANY_ARGUMENTS ,
  mi::mdl::EC_INSTANTIATION_ERROR ,
  mi::mdl::EC_ARGUMENT_TYPE_MISMATCH ,
  mi::mdl::EC_WRONG_TRANSMISSION_ON_THIN_WALLED
}
 The possible error codes on DAG. More...
 

Functions

template<typename T>
bool mi::mdl::is (DAG_node const *node)
 Check if a DAG node is of a certain type. More...
 
template<typename T>
T * mi::mdl::as (DAG_node *type)
 Cast to subtype or return NULL if types do not match. More...
 
template<typename T>
T const * mi::mdl::as (DAG_node const *type)
 Cast to subtype or return NULL if types do not match. More...
 

Detailed Description

Interfaces for the MDL DAG Intermediate Representation.

Enumeration Type Documentation

 Dag_error_code

The possible error codes on DAG.

Enumerator
EC_NONE 

No error has occurred.

EC_INVALID_INDEX 

The given index is invalid.

EC_MATERIAL_HAS_ERROR 

The material cannot be instantiated because it has errors.

EC_TOO_FEW_ARGUMENTS 

Not enough arguments were supplied for the material.

EC_TOO_MANY_ARGUMENTS 

Too many arguments were supplied for the material.

EC_INSTANTIATION_ERROR 

An error occurred during instantiation.

EC_ARGUMENT_TYPE_MISMATCH 

An instance argument is of wrong type.

EC_WRONG_TRANSMISSION_ON_THIN_WALLED 

Different transmission on thin_walled material.

Function Documentation

 as() [1/2]

template<typename T>
T * mi::mdl::as ( DAG_node type)

Cast to subtype or return NULL if types do not match.

 as() [2/2]

template<typename T>
T const * mi::mdl::as ( DAG_node const *  type)

Cast to subtype or return NULL if types do not match.

 is()

template<typename T>
bool mi::mdl::is ( DAG_node const *  node)

Check if a DAG node is of a certain type.