imdl_discovery_api.h File Reference
Description
API component to discover MDL content in archives and file systems.
Code Example
imdl_discovery_api.h
/***************************************************************************************************
* Copyright 2024 NVIDIA Corporation. All rights reserved.
**************************************************************************************************/
#ifndef MI_NEURAYLIB_IMDL_DISCOVERY_API_H
#define MI_NEURAYLIB_IMDL_DISCOVERY_API_H
#include <mi/base/interface_declare.h>
namespace mi {
class IString;
namespace neuraylib {
class IMdl_info : public
base::Interface_declare<0xd2f50312,0xe76c,0x4d64,0xa5,0x91,0xcb,0x70,0x38,0x2c,0xa9,0x9f>
{
public:
enum Kind {
DK_PACKAGE = 0,
DK_MODULE = 1,
DK_XLIFF = 2,
DK_TEXTURE = 4,
DK_LIGHTPROFILE = 8,
DK_MEASURED_BSDF = 16,
DK_DIRECTORY = 32,
// next = 64
DK_ALL = 0xffffffffU
};
virtual Kind
get_kind() const = 0;
virtual const char* get_qualified_name() const = 0;
virtual const char* get_simple_name() const = 0;
};
mi_static_assert(sizeof(IMdl_info::Kind) == sizeof(Uint32));
class IMdl_module_info : public
base::Interface_declare<0x22,0x1204,0x46,0xb1,0x5b,0xbf,0xa8,0x11,0xc7,0xe7,0xe1,IMdl_info>
{
public:
virtual Size
get_search_path_index() const = 0;
virtual const char* get_search_path() const = 0;
virtual const IString* get_resolved_path() const = 0;
virtual Size
get_shadows_count() const = 0;
virtual const IMdl_module_info* get_shadow(Size index) const = 0;
virtual bool in_archive() const = 0;
};
class IMdl_xliff_info : public
base::Interface_declare<0x3a,0xdf,0x8a,0x42,0x94,0x09,0x59,0xe6,0xf9,0x25,0x67,IMdl_info>
{
public:
virtual const char* get_resolved_path() const = 0;
virtual Size
get_search_path_index() const = 0;
virtual const char* get_search_path() const = 0;
virtual bool in_archive() const = 0;
};
class IMdl_resource_info : public
base::Interface_declare<0x28,0x54,0x6b,0xcd,0x14,0x59,0xfd,0x42,0x9d,0xfa,0xd5,IMdl_info>
{
public:
virtual Size
get_search_path_index() const = 0;
virtual const char* get_search_path() const = 0;
virtual const char* get_extension() const = 0;
virtual const char* get_resolved_path() const = 0;
virtual Size
get_shadows_count() const = 0;
virtual const IMdl_resource_info* get_shadow(Size index) const = 0;
virtual bool in_archive() const = 0;
};
class IMdl_texture_info : public
base::Interface_declare<0x62,0x71,0xac,0x50,0xde,0xa9,0x40,0x92,0x8b,0xf0,0x1d,
IMdl_resource_info>
{
};
class IMdl_lightprofile_info : public
base::Interface_declare<0x17,0x23,0x61,0xf4,0xcb,0x64,0xb3,0x40,0xb4,0x45,0x07,
IMdl_resource_info>
{
};
class IMdl_measured_bsdf_info : public
base::Interface_declare<0xce,0x45,0xe6,0xef,0xdc,0x74,0x00,0x4f,0xac,0xae,0x34,
IMdl_resource_info>
{
};
class IMdl_package_info : public
base::Interface_declare<0x94d,0x66,0x47a,0xb0,0xc3,0x7b,0x68,0xba,0x40,0xde,0x06,IMdl_info>
{
public:
virtual Size
get_child_count() const = 0;
virtual const IMdl_info* get_child(Size index) const = 0;
virtual Size
get_search_path_index_count() const = 0;
virtual Size
get_search_path_index(Size index) const = 0;
virtual const char* get_search_path(Size index) const = 0;
virtual const IString* get_resolved_path(Size index) const = 0;
virtual bool in_archive(Size index) const = 0;
};
class IMdl_discovery_result : public
base::Interface_declare<0xe3c1bc1a,0xb1db,0x4c8c,0xba,0x41,0x37,0xed,0x87,0xb7,0x86,0xb8>
{
public:
virtual const IMdl_package_info* get_graph() const = 0;
virtual Size
get_search_paths_count() const = 0;
virtual const char* get_search_path(Size index) const = 0;
};
class IMdl_discovery_api : public
base::Interface_declare<0x208aa1f2,0x08bc,0x4c81,0x8b,0x0f,0x54,0xba,0x4a,0x61,0xe9,0xd8>
{
public:
virtual const IMdl_discovery_result* discover(
Uint32 filter = static_cast<Uint32>(IMdl_info::DK_ALL)) const = 0;
};
} // namespace neuraylib
} // namespace mi
#endif // MI_NEURAYLIB_IMDL_DISCOVERY_API_H
Namespaces
- namespace
- Common namespace for APIs of NVIDIA Advanced Rendering Center GmbH. More...
- namespace
- Namespace for the neuray API. More...
Classes
- class
- Interface for the discovery API. More...
- class
- Interface for the discovery result. More...
- class
- Abstract interface for a discovery graph node. More...
- class
- Interface for lightprofile files. More...
- class
- Interface for measured bsdf files. More...
- class
- Interface for a graph node representing an MDL module. More...
- class
- Interface for a graph node representing an MDL package. More...
- class
- Interface for resources. More...
- class
- Interface for texture files. More...
- class
- Interface for xliff files. More...