MDL API | MDL API |
 MDL API Assertions | Assertions |
 Types | Types are organized in a hierarchy based on the basic interface mi::IData |
  Simple Types | This module lists all interfaces related to simple types |
  Collections | This module and its submodule Compounds list all interfaces related to collections |
   Compounds | This module lists all interfaces and typedefs related to compounds |
 Database Access | Provides access to the database using concepts like scopes and transactions |
 Miscellaneous Interfaces | Various utility classes |
 MDL compiler | This module contains the MDL API components representing the MDL compiler, its backends and the generated target code |
 Main MDL API Interface and C access function | The main MDL API Interface and the unique public access point |
 Configuration Interfaces | This module encompasses the API components used to configure the MDL API as well as closely related interfaces |
 Scene elements | All the scene elements that make up the scene graph |
  Miscellaneous | Miscellaneous scene graph elements, for example, textures, light profiles, BSDF measurements, or decals |
  MDL-related elements | MDL-related elements comprise a set of interfaces related to the Material Definition Language (MDL) |
 MDL type system | The MDL type system mainly consists of four sets of interfaces: |
 Versioning of the MDL API | The MDL API has a major and minor version number and an optional qualifier |
Math API | Math-related functions and classes, for example, vectors and matrices |
 Math API Assertions | Assertions |
 Bounding Box Class | An axis-aligned N-dimensional bounding box class template of fixed dimension with supporting functions |
 Color Class | Standard RGBA color class with floating point elements and operations |
 Math Functions | The math API provides functions and function templates that act on simple types or generic container and vector concepts |
  Basic Math Functors in the Math API | Basic math functors in the Math API |
  Generic Functions in the Math API | Generic functions in the Math API targeted to static vector-like sequences |
  Fast Approximations for float Math Functions | Fast approximations for math functions on limited precision floats |
 Matrix Class | A NxM-dimensional matrix class template of fixed dimensions with supporting functions |
  Internal Storage Classes for Matrices | Storage class for matrix templates with support for xx , xy , xz , etc., members for appropriate dimensions |
 Spectrum Class | Spectrum class with floating point elements and operations |
 Math Vector Class | Math vector class template of fixed dimension with generic operations |
  Internal Storage Class for Math Vector | Storage class for math vectors with support for x , y , z , and w members for appropriate dimensions |
 Versioning of the Math API | The Math API has a major and minor version number and an optional qualifier |
Base API | Basic types, configuration, and assertion support |
 Base API Assertions | Assertions and static assertions |
 Configuration of the Base API | Configuration macros for platform, compiler, etc |
 Memory Management | The memory management provides an interface for allocators including a default implementation |
 Interface Framework Technology | The classes provided here support conventional modern C++ library design principles for component software to achieve binary compatibility across shared library boundaries and future extensibility |
 Logging | Logger interface and severity levels |
 Multithreading Support | Primitives useful for multithreaded applications, for example, atomic counters, condition variables, and locks |
 Plugin Support | Support for dynamically loaded plugins |
 Basic Types | Platform-independent types |
  Specializations for numeric_traits | The number traits class is specialized for number types defined in this API, such as mi::Uint32 and mi::Float64 |
 Versioning of the Base API | The Base API has a major and minor version number and an optional qualifier |