Iray SDK API nvidia_logo_transpbg.gif Up
imdl_entity_resolver.h
Go to the documentation of this file.
1/***************************************************************************************************
2 * Copyright 2025 NVIDIA Corporation. All rights reserved.
3 **************************************************************************************************/
6
7#ifndef MI_NEURAYLIB_IMDL_ENTITY_RESOLVER_H
8#define MI_NEURAYLIB_IMDL_ENTITY_RESOLVER_H
9
11#include <mi/neuraylib/version.h> // for MI_NEURAYLIB_DEPRECATED_ENUM_VALUE
12
13namespace mi {
14
15namespace neuraylib {
16
17class IMdl_execution_context;
18class IMdl_resolved_module;
19class IMdl_resolved_resource;
20class IReader;
21
34 mi::base::Interface_declare<0xfe6e553a,0x6a1f,0x4300,0xb5,0x46,0x96,0xc8,0xee,0x12,0xcf,0x95>
35{
36public:
54 const char* module_name,
55 const char* owner_file_path,
56 const char* owner_name,
57 Sint32 pos_line,
58 Sint32 pos_column,
59 IMdl_execution_context* context = nullptr) = 0;
60
85 const char* file_path,
86 const char* owner_file_path,
87 const char* owner_name,
88 Sint32 pos_line,
89 Sint32 pos_column,
90 IMdl_execution_context* context = nullptr) = 0;
91};
92
103 MI_NEURAYLIB_DEPRECATED_ENUM_VALUE(UVTILE_MODE_FORCE_32_BIT, 0xffffffffU)
105
108 mi::base::Interface_declare<0xd725c3bb,0xd34d,0x4a1a,0x93,0x5d,0xa3,0x96,0x53,0x9f,0xb1,0x76>
109{
110public:
112 virtual const char* get_module_name() const = 0;
113
115 virtual const char* get_filename() const = 0;
116
120 virtual IReader* create_reader() const = 0;
121};
122
128 mi::base::Interface_declare<0x0c49fcd6,0xc675,0x4ca5,0xbf,0xae,0xb1,0x59,0xd9,0x75,0x5f,0xe2>
129{
130public:
135 virtual Size get_frame_number() const = 0;
136
141 virtual Size get_count() const = 0;
142
150 virtual const char* get_mdl_file_path( Size i) const = 0;
151
163 virtual const char* get_filename( Size i) const = 0;
164
172 virtual IReader* create_reader( Size i) const = 0;
173
179 virtual base::Uuid get_resource_hash( Size i) const = 0;
180
188 virtual bool get_uvtile_uv( Size i, Sint32& u, Sint32& v) const = 0;
189};
190
196 mi::base::Interface_declare<0x650cbe23,0xed44,0x4c2f,0x9f,0xbc,0x3b,0x64,0x4a,0x08,0x15,0xa1>
197{
198public:
204 virtual bool has_sequence_marker() const = 0;
205
213 virtual Uvtile_mode get_uvtile_mode() const = 0;
214
225 virtual const char* get_mdl_file_path_mask() const = 0;
226
241 virtual const char* get_filename_mask() const = 0;
242
247 virtual Size get_count() const = 0;
248
255 virtual const IMdl_resolved_resource_element* get_element( Size i) const = 0;
256};
257 // end group mi_neuray_mdl_misc
259
260} // namespace neuraylib
261
262} // namespace mi
263
264#endif // MI_NEURAYLIB_IMDL_ENTITY_RESOLVER_H
Mixin class template for deriving new interface declarations.
Definition: interface_declare.h:43
The entity resolver is used to resolve MDL modules and resources in such modules.
Definition: imdl_entity_resolver.h:35
virtual IMdl_resolved_module * resolve_module(const char *module_name, const char *owner_file_path, const char *owner_name, Sint32 pos_line, Sint32 pos_column, IMdl_execution_context *context=nullptr)=0
Resolves a module name.
virtual IMdl_resolved_resource * resolve_resource(const char *file_path, const char *owner_file_path, const char *owner_name, Sint32 pos_line, Sint32 pos_column, IMdl_execution_context *context=nullptr)=0
Resolves a resource file path.
The execution context can be used to query status information like error and warning messages concern...
Definition: imdl_execution_context.h:163
Describes a resolved module (or a failed attempt).
Definition: imdl_entity_resolver.h:109
virtual IReader * create_reader() const =0
Returns a reader for the module.
virtual const char * get_module_name() const =0
Returns the MDL name of the module.
virtual const char * get_filename() const =0
Returns the absolute resolved filename of the module.
Describes an ordered set of resolved resource entities.
Definition: imdl_entity_resolver.h:129
virtual const char * get_filename(Size i) const =0
Returns the absolute resolved filename of a resource entity.
virtual IReader * create_reader(Size i) const =0
Returns a reader for a resource entity.
virtual bool get_uvtile_uv(Size i, Sint32 &u, Sint32 &v) const =0
Returns the u and v tile indices for a resource entity.
virtual const char * get_mdl_file_path(Size i) const =0
Returns the absolute MDL file path of a resource entity.
virtual base::Uuid get_resource_hash(Size i) const =0
Returns the resource hash value for a resource entity.
virtual Size get_count() const =0
Returns the number of resource entities for this element.
virtual Size get_frame_number() const =0
Returns the frame number of this element.
Describes an ordered set of resolved resource elements.
Definition: imdl_entity_resolver.h:197
virtual bool has_sequence_marker() const =0
Indicates whether this resource has a sequence marker.
virtual Size get_count() const =0
Returns the number of elements of the resolved resource.
virtual const char * get_filename_mask() const =0
Returns the absolute resolved filename mask for this resource.
virtual const IMdl_resolved_resource_element * get_element(Size i) const =0
Returns the i -th element of the resolved resource.
virtual const char * get_mdl_file_path_mask() const =0
Returns the absolute MDL file path mask for this resource.
virtual Uvtile_mode get_uvtile_mode() const =0
Returns the uvtile mode for this resource.
A reader supports binary block reads and string-oriented line reads that zero-terminate the result.
Definition: ireader.h:27
int Sint32
32-bit signed integer.
Definition: types.h:46
Uint64 Size
Unsigned integral type that is large enough to hold the size of all types.
Definition: types.h:112
unsigned int Uint32
32-bit unsigned integer.
Definition: types.h:49
Uvtile_mode
Supported uvtile modes for resources.
Definition: imdl_entity_resolver.h:98
@ UVTILE_MODE_UVTILE0
The UVTILE0 uvtile mode.
Definition: imdl_entity_resolver.h:101
@ UVTILE_MODE_UVTILE1
The UVTILE1 uvtile mode.
Definition: imdl_entity_resolver.h:102
@ UVTILE_MODE_NONE
No uvtile mode.
Definition: imdl_entity_resolver.h:99
@ UVTILE_MODE_UDIM
The UDIM uvtile mode.
Definition: imdl_entity_resolver.h:100
Mixin class template for deriving new interface declarations.
Common namespace for APIs of NVIDIA Advanced Rendering Center GmbH.
Definition: neuraylib.h:179
Major and minor version number and an optional qualifier.
A 128 bit representation of a universally unique identifier (UUID or GUID).
Definition: uuid.h:26