Interface for the discovery API. More...
#include <imdl_discovery_api.h>
Public Member Functions | |
virtual const IMdl_discovery_result * | discover (Uint32 filter=static_cast< Uint32 >(IMdl_info::DK_ALL)) const =0 |
Returns the file system and archive discovery result. 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 IInterface * | get_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 IInterface * | get_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 | |
Public Types inherited from mi::base::Interface_declare< 0x208aa1f2, ... > | |
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... | |
Static Public Member Functions inherited from mi::base::Interface_declare< 0x208aa1f2, ... > | |
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... | |
Interface for the discovery API.
The discovery API offers functionality to find MDL content in the registered MDL search paths. These search paths have to be declared with the function call mi::neuraylib::IMdl_configuration::add_mdl_path() in advance. The ordering of the search paths results from the ordering of the registration and is taken into account during the discovery process.
The MDL modules and packages found inside a search path are assembled into a graph structure consisting of package and module nodes. The discovery results of multiple search paths are merged to one result graph. If a module is found, but there exists already a module with the same qualified name in a previously discovered graph, the additional module will be handled as a shadow of the existing module. Multiple packages with the same qualified name will be merged into one package.
The discovery API works for both MDL files (.mdl) and MDL archive files (.mdr). Archives have to be installed in the top level of the search paths, but material files can be placed anywhere across the sub-folders of a search path.
The result of a discovery process is provided as an mi::neuraylib::IMdl_discovery_result. This data structure provides information about the discovered search paths as well as access to the result graph structure.
|
pure virtual |
Returns the file system and archive discovery result.
filter | Bitmask, that can be used to specify which discovery kinds to include in the result (see mi::neuraylib::IMdl_info::Kind). By default, all kinds are included. |