MDL SDK API nvidia_logo_transpbg.gif Up
imdl_discovery_api.h
Go to the documentation of this file.
1/***************************************************************************************************
2 * Copyright 2024 NVIDIA Corporation. All rights reserved.
3 **************************************************************************************************/
6
7#ifndef MI_NEURAYLIB_IMDL_DISCOVERY_API_H
8#define MI_NEURAYLIB_IMDL_DISCOVERY_API_H
9
11
12namespace mi {
13
14class IString;
15
16namespace neuraylib {
17
18
21class IMdl_info : public
22 base::Interface_declare<0xd2f50312,0xe76c,0x4d64,0xa5,0x91,0xcb,0x70,0x38,0x2c,0xa9,0x9f>
23{
24public:
25
27 enum Kind {
28 DK_PACKAGE = 0,
29 DK_MODULE = 1,
30 DK_XLIFF = 2,
31 DK_TEXTURE = 4,
32 DK_LIGHTPROFILE = 8,
33 DK_MEASURED_BSDF = 16,
34 DK_DIRECTORY = 32,
35 // next = 64
36 DK_ALL = 0xffffffffU
37 };
38
40 virtual Kind get_kind() const = 0;
41
43 virtual const char* get_qualified_name() const = 0;
44
46 virtual const char* get_simple_name() const = 0;
47};
48
49mi_static_assert(sizeof(IMdl_info::Kind) == sizeof(Uint32));
50
52class IMdl_module_info : public
53 base::Interface_declare<0x22,0x1204,0x46,0xb1,0x5b,0xbf,0xa8,0x11,0xc7,0xe7,0xe1,IMdl_info>
54
55{
56public:
57
59 virtual Size get_search_path_index() const = 0;
60
62 virtual const char* get_search_path() const = 0;
63
65 virtual const IString* get_resolved_path() const = 0;
66
68 virtual Size get_shadows_count() const = 0;
69
72 virtual const IMdl_module_info* get_shadow(Size index) const = 0;
73
75 virtual bool in_archive() const = 0;
76};
77
79class IMdl_xliff_info : public
80 base::Interface_declare<0x3a,0xdf,0x8a,0x42,0x94,0x09,0x59,0xe6,0xf9,0x25,0x67,IMdl_info>
81{
82public:
83
85 virtual const char* get_resolved_path() const = 0;
86
88 virtual Size get_search_path_index() const = 0;
89
91 virtual const char* get_search_path() const = 0;
92
94 virtual bool in_archive() const = 0;
95};
96
98class IMdl_resource_info : public
99 base::Interface_declare<0x28,0x54,0x6b,0xcd,0x14,0x59,0xfd,0x42,0x9d,0xfa,0xd5,IMdl_info>
100{
101public:
102
104 virtual Size get_search_path_index() const = 0;
105
107 virtual const char* get_search_path() const = 0;
108
110 virtual const char* get_extension() const = 0;
111
113 virtual const char* get_resolved_path() const = 0;
114
116 virtual Size get_shadows_count() const = 0;
117
120 virtual const IMdl_resource_info* get_shadow(Size index) const = 0;
121
123 virtual bool in_archive() const = 0;
124};
125
126
128class IMdl_texture_info : public
129 base::Interface_declare<0x62,0x71,0xac,0x50,0xde,0xa9,0x40,0x92,0x8b,0xf0,0x1d,
130 IMdl_resource_info>
131{
132};
133
136 base::Interface_declare<0x17,0x23,0x61,0xf4,0xcb,0x64,0xb3,0x40,0xb4,0x45,0x07,
137 IMdl_resource_info>
138{
139};
140
143 base::Interface_declare<0xce,0x45,0xe6,0xef,0xdc,0x74,0x00,0x4f,0xac,0xae,0x34,
144 IMdl_resource_info>
145{
146};
147
149class IMdl_package_info : public
150 base::Interface_declare<0x94d,0x66,0x47a,0xb0,0xc3,0x7b,0x68,0xba,0x40,0xde,0x06,IMdl_info>
151{
152public:
153
155 virtual Size get_child_count() const = 0;
156
159 virtual const IMdl_info* get_child(Size index) const = 0;
160
163
166 virtual Size get_search_path_index(Size index) const = 0;
167
170 virtual const char* get_search_path(Size index) const = 0;
171
174 virtual const IString* get_resolved_path(Size index) const = 0;
175
178 virtual bool in_archive(Size index) const = 0;
179};
180
181
184 base::Interface_declare<0xe3c1bc1a,0xb1db,0x4c8c,0xba,0x41,0x37,0xed,0x87,0xb7,0x86,0xb8>
185{
186public:
187
189 virtual const IMdl_package_info* get_graph() const = 0;
190
192 virtual Size get_search_paths_count() const = 0;
193
196 virtual const char* get_search_path(Size index) const = 0;
197};
198
222class IMdl_discovery_api : public
223 base::Interface_declare<0x208aa1f2,0x08bc,0x4c81,0x8b,0x0f,0x54,0xba,0x4a,0x61,0xe9,0xd8>
224{
225public:
226
232 Uint32 filter = static_cast<Uint32>(IMdl_info::DK_ALL)) const = 0;
233};
234
235} // namespace neuraylib
236
237} // namespace mi
238
239#endif // MI_NEURAYLIB_IMDL_DISCOVERY_API_H
A simple string class.
Definition: istring.h:22
Mixin class template for deriving new interface declarations.
Definition: interface_declare.h:43
Interface for the discovery API.
Definition: imdl_discovery_api.h:224
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.
Interface for the discovery result.
Definition: imdl_discovery_api.h:185
virtual const IMdl_package_info * get_graph() const =0
Returns a pointer to the root of the discovered graph.
virtual const char * get_search_path(Size index) const =0
Returns the search path in the local file system referenced by index.
virtual Size get_search_paths_count() const =0
Returns the number of search paths.
Abstract interface for a discovery graph node.
Definition: imdl_discovery_api.h:23
Kind
The kinds of the graph nodes.
Definition: imdl_discovery_api.h:27
virtual const char * get_qualified_name() const =0
Returns the qualified name of the graph node.
virtual Kind get_kind() const =0
Returns the kind of the graph node.
virtual const char * get_simple_name() const =0
Returns the simple_name (tail of the qualified_name) of the graph node.
Interface for lightprofile files.
Definition: imdl_discovery_api.h:138
Interface for measured bsdf files.
Definition: imdl_discovery_api.h:145
Interface for a graph node representing an MDL module.
Definition: imdl_discovery_api.h:55
virtual Size get_search_path_index() const =0
Returns the index of the search path where this module has been found.
virtual const IString * get_resolved_path() const =0
Returns an absolute path to the module file in the local file system.
virtual const IMdl_module_info * get_shadow(Size index) const =0
Returns one of the shadows this module has.
virtual bool in_archive() const =0
Returns true if the module has been discovered inside of an archive, false if not.
virtual const char * get_search_path() const =0
Returns the search path in the local file system that contains this module.
virtual Size get_shadows_count() const =0
Returns the number of shadows of this module.
Interface for a graph node representing an MDL package.
Definition: imdl_discovery_api.h:151
virtual const IString * get_resolved_path(Size index) const =0
Returns an absolute path to package in the local file system.
virtual Size get_child_count() const =0
Returns the number of modules and packages contained by this package.
virtual const char * get_search_path(Size index) const =0
Returns a search path in the local file system where this package has been found.
virtual const IMdl_info * get_child(Size index) const =0
Returns a child of this package.
virtual Size get_search_path_index(Size index) const =0
Returns the search path index in the current IMdl_discovery_result.
virtual bool in_archive(Size index) const =0
Returns true if the package has been discovered inside of an archive, false if not.
virtual Size get_search_path_index_count() const =0
Returns the number of search paths of this package.
Interface for resources.
Definition: imdl_discovery_api.h:100
virtual const char * get_extension() const =0
Returns the file extension of the resource file.
virtual Size get_search_path_index() const =0
Returns the index of the search path where this resource has been found.
virtual bool in_archive() const =0
Returns true if the resource has been discovered inside of an archive, false if not.
virtual const char * get_search_path() const =0
Returns the search path in the local file system that contains this resource.
virtual Size get_shadows_count() const =0
Returns the number of shadows of this resource.
virtual const char * get_resolved_path() const =0
Returns an absolute path to the resource file in the local file system.
virtual const IMdl_resource_info * get_shadow(Size index) const =0
Returns one of the shadows this resource has.
Interface for texture files.
Definition: imdl_discovery_api.h:131
Interface for xliff files.
Definition: imdl_discovery_api.h:81
virtual Size get_search_path_index() const =0
Returns the index of the search path where the xliff file has been found.
virtual const char * get_search_path() const =0
Returns the search path in the local file system that contains this xliff file.
virtual const char * get_resolved_path() const =0
Returns an absolute path to the xliff file in the local file system.
virtual bool in_archive() const =0
Returns true if the xliff file has been discovered inside of an archive, false if not.
#define mi_static_assert(expr)
Compile time assertion that raises a compilation error if the constant expression expr evaluates to f...
Definition: assert.h:58
unsigned int Uint32
32-bit unsigned integer.
Definition: types.h:49
Uint64 Size
Unsigned integral type that is large enough to hold the size of all types.
Definition: types.h:112
Mixin class template for deriving new interface declarations.
Common namespace for APIs of NVIDIA Advanced Rendering Center GmbH.
Definition: example_derivatives.dox:5