Iray Programmer's Manual

Iray API configuration options for assertions

The Iray API configuration uses the Base API configuration. In addition, the Math API configuration is relevant for the Math API elements used in Iray. For more details, see:

By default, the Iray API assertions are mapped to the Base API assertions.

The Iray API supports quality software development with assertions. They are contained in various places in the Iray API include files.

These tests are mapped to corresponding Base API assertions by default, which in turn are switched off by default to have the performance of a release build. To activate the tests, you need to define the two macros mi_neuray_assert and mi_neuray_assert_msg before including the relevant include files. Defining only one of the two macros is considered an error. These macros and their parameters have the following meaning:

mi::neuraylib::mi_neuray_assert(expr)

If expr evaluates to true this macro shall have no effect. If expr evaluates to false this macro may print a diagnostic message and change the control flow of the program, such as aborting the program or throwing an exception. But it may also have no effect at all, for example if assertions are configured to be disabled.

mi::neuraylib::mi_neuray_assert_msg(expr, msg)

Same behavior as mi_neuray_assert(expr), but the msg text string contains additional diagnostic information that may be shown with a diagnostic message. Typical usages would contain precondition or postcondition as clarifying context information in the msg parameter.

See mi::neuraylib::mi_neuray_assert() and mi::base::mi_base_assert().