neuray API Programmer's Manual

mi::neuraylib::IMdl_execution_context Class Reference

[Miscellaneous MDL-related Interfaces]

Description

The execution context can be used to query status information like error and warning messages concerning the operation it was passed into. The context supports the following options:

Options for module loading

  • std::string "warning": Silence compiler warnings or promote them to errors. Format: options = (option ',')* option. option = 'err' | number '=' ('on' | 'off' | 'err'). A single 'err' promotes all compiler warnings to errors. Otherwise, warning number is either enabled ('on'), disabled ('off'), or promoted to an error ('err').

  • mi::Sint32 "optimization_level": Sets the optimization level. Possible values: 0 (all optimizations are disabled), 1 (only intra procedural optimizations are enabled), 2 (intra and inter procedural optimizations are enabled). Default: 2.

  • std::string "internal_space": Sets the internal space of the backend. Possible values: "coordinate_world", "coordinate_object". Default: "coordinate_world".

  • bool "mdl_next": If true, enables (possible incomplete) features from upcoming MDL version. Default: false.

  • bool "experimental": If true, enables undocumented experimental MDL features. Default: false.

  • mi::base::IInterface* "user_data": A user-supplied pointer to an arbitrary interface. This option can be used to pass additional data from a call site of mi::neuraylib::IMdl_impexp_api::load_module() to a custom implementation of the entity resolver. Default: NULL.

Options for MDL export

  • bool "bundle_resources": If true, referenced resources are exported into the same directory as the module, even if they can be found via the module search path. Default: false.

  • bool "export_resources_with_module_prefix": If true, the name of the exported resources start with the module name as prefix. Default: true.

Options for material compilation

  • bool "fold_meters_per_scene_unit": If true, occurrences of the functions state::meters_per_scene_unit() and state::scene_units_per_meter() will be folded using the meters_per_scene_unit option. Default: true

  • mi::Float32 "meters_per_scene_unit": The conversion ratio between meters and scene units for this material. Only used if folding is enabled. Default: 1.0f.

  • mi::Float32 "wavelength_min": The smallest supported wavelength. Default: 380.0f.

  • mi::Float32 "wavelength_max": The largest supported wavelength. Default: 780.0f.

  • mi::Float32 "fold_ternary_on_df": Fold all ternary operators of *df types, even in class compilation mode. Default: false.

  • bool "ignore_noinline": If true, anno::noinline() annotations are ignored during material compilation. Default: false.

Options for code generation

  • bool "fold_meters_per_scene_unit": If true, occurrences of the functions state::meters_per_scene_unit() and state::scene_units_per_meter() will be folded using the meters_per_scene_unit option. Default: true

  • mi::Float32 "meters_per_scene_unit": The conversion ratio between meters and scene units for this material. Only used if folding is enabled. Default: 1.0f.

  • mi::Float32 "wavelength_min": The smallest supported wavelength. Default: 380.0f.

  • mi::Float32 "wavelength_max": The largest supported wavelength. Default: 780.0f.

  • bool "include_geometry_normal": If true, the "geometry.normal" field will be applied to the MDL state prior to evaluation of the given DF. Default: true.

Messages

virtual void add_message( IMessage::​Kind kind, base::​Message_severity severity, Sint32 code, const char* message) =0
Adds a message.
virtual void clear_messages() =0
Clears all messages.
virtual const IMessageget_error_message( Size index) const =0
Returns the error message at index or NULL, if no such index exists.
virtual Size get_error_messages_count() const =0
Returns the number of error messages.
virtual const IMessageget_message( Size index) const =0
Returns the message at index or NULL, if no such index exists.
virtual Size get_messages_count() const =0
Returns the number of messages.

Options

virtual Sint32 get_option( const char* name, const char*& value) const =0
Returns a string option. More...
virtual Sint32 get_option( const char* name, Sint32& value) const =0
Returns an int option. More...
virtual Sint32 get_option( const char* name, Float32& value) const =0
Returns a float option. More...
virtual Sint32 get_option( const char* name, bool& value) const =0
Returns a bool option. More...
virtual Sint32 get_option( const char* name, const base::​IInterface** value) const =0
Returns an interface option. More...
template< typename T>const T* get_option( const char* name, Sint32& return_code)
Returns an interface option. More...
virtual Size get_option_count() const =0
Returns the number of supported options.
virtual const char* get_option_name( Size index) const =0
Returns the option name at index.
virtual const char* get_option_type( const char* name) const =0
Returns the option type name at index.
virtual Sint32 set_option( const char* name, const char* value) =0
Sets a string option. More...
virtual Sint32 set_option( const char* name, Sint32 value) =0
Sets an int option. More...
virtual Sint32 set_option( const char* name, Float32 value) =0
Sets a float option. More...
virtual Sint32 set_option( const char* name, bool value) =0
Sets a bool option. More...
virtual Sint32 set_option( const char* name, const base::​IInterface* value) =0
Sets an interface option. More...

Member Functions

virtual void mi::​neuraylib::​IMdl_execution_context::add_message( IMessage::​Kind kind, base::​Message_severity severity, Sint32 code, const char* message) [pure virtual]

Adds a message.

virtual void mi::​neuraylib::​IMdl_execution_context::clear_messages() [pure virtual]

Clears all messages.

virtual const IMessage* mi::​neuraylib::​IMdl_execution_context::get_error_message( Size index) const [pure virtual]

Returns the error message at index or NULL, if no such index exists.

virtual Size mi::​neuraylib::​IMdl_execution_context::get_error_messages_count() const [pure virtual]

Returns the number of error messages.

virtual const IMessage* mi::​neuraylib::​IMdl_execution_context::get_message( Size index) const [pure virtual]

Returns the message at index or NULL, if no such index exists.

virtual Size mi::​neuraylib::​IMdl_execution_context::get_messages_count() const [pure virtual]

Returns the number of messages.

virtual Sint32 mi::​neuraylib::​IMdl_execution_context::get_option( const char* name, const char*& value) const [pure virtual]

Returns a string option.

Parameters

name
The name of the option.
value
The value of the option.

Returns

  • 0: Success.
  • -1: Invalid option name.
  • -2: The option type does not match the value type.

virtual Sint32 mi::​neuraylib::​IMdl_execution_context::get_option( const char* name, Sint32& value) const [pure virtual]

Returns an int option.

Parameters

name
The name of the option.
value
The value of the option.

Returns

  • 0: Success.
  • -1: Invalid option name.
  • -2: The option type does not match the value type.

virtual Sint32 mi::​neuraylib::​IMdl_execution_context::get_option( const char* name, Float32& value) const [pure virtual]

Returns a float option.

Parameters

name
The name of the option.
value
The value of the option.

Returns

  • 0: Success.
  • -1: Invalid option name.
  • -2: The option type does not match the value type.

virtual Sint32 mi::​neuraylib::​IMdl_execution_context::get_option( const char* name, bool& value) const [pure virtual]

Returns a bool option.

Parameters

name
The name of the option.
value
The value of the option.

Returns

  • 0: Success.
  • -1: Invalid option name.
  • -2: The option type does not match the value type.

virtual Sint32 mi::​neuraylib::​IMdl_execution_context::get_option( const char* name, const base::​IInterface** value) const [pure virtual]

Returns an interface option.

Parameters

name
The name of the option.
value
The value of the option.

Returns

  • 0: Success.
  • -1: Invalid option name.
  • -2: The option type does not match the value type.

template< typename T>

const T* mi::​neuraylib::​IMdl_execution_context::get_option( const char* name, Sint32& return_code) [inline]

Returns an interface option.

Parameters

name
The name of the option.
return_code
  • 0: Success.
  • -1: Invalid option name.
  • -2: The option type does not match the value type.

Returns

The interface value or NULL .

virtual Size mi::​neuraylib::​IMdl_execution_context::get_option_count() const [pure virtual]

Returns the number of supported options.

virtual const char* mi::​neuraylib::​IMdl_execution_context::get_option_name( Size index) const [pure virtual]

Returns the option name at index.

virtual const char* mi::​neuraylib::​IMdl_execution_context::get_option_type( const char* name) const [pure virtual]

Returns the option type name at index.

virtual Sint32 mi::​neuraylib::​IMdl_execution_context::set_option( const char* name, const char* value) [pure virtual]

Sets a string option.

Parameters

name
The name of the option.
value
The value of the option.

Returns

  • 0: Success.
  • -1: Invalid option name.
  • -2: The option type does not match the value type.

virtual Sint32 mi::​neuraylib::​IMdl_execution_context::set_option( const char* name, Sint32 value) [pure virtual]

Sets an int option.

Parameters

name
The name of the option.
value
The value of the option.

Returns

  • 0: Success.
  • -1: Invalid option name.
  • -2: The option type does not match the value type.

virtual Sint32 mi::​neuraylib::​IMdl_execution_context::set_option( const char* name, Float32 value) [pure virtual]

Sets a float option.

Parameters

name
The name of the option.
value
The value of the option.

Returns

  • 0: Success.
  • -1: Invalid option name.
  • -2: The option type does not match the value type.

virtual Sint32 mi::​neuraylib::​IMdl_execution_context::set_option( const char* name, bool value) [pure virtual]

Sets a bool option.

Parameters

name
The name of the option.
value
The value of the option.

Returns

  • 0: Success.
  • -1: Invalid option name.
  • -2: The option type does not match the value type.
  • -3: The value is invalid in the context of the option.

virtual Sint32 mi::​neuraylib::​IMdl_execution_context::set_option( const char* name, const base::​IInterface* value) [pure virtual]

Sets an interface option.

Parameters

name
The name of the option.
value
The value of the option.

Returns

  • 0: Success.
  • -1: Invalid option name.
  • -2: The option type does not match the value type.
  • -3: The value is invalid in the context of the option.