MDL SDK API nvidia_logo_transpbg.gif Up
imdl_entity_resolver.h
Go to the documentation of this file.
1/***************************************************************************************************
2 * Copyright 2024 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
12namespace mi {
13
14namespace neuraylib {
15
16class IMdl_execution_context;
17class IMdl_resolved_module;
18class IMdl_resolved_resource;
19class IReader;
20
33 mi::base::Interface_declare<0xfe6e553a,0x6a1f,0x4300,0xb5,0x46,0x96,0xc8,0xee,0x12,0xcf,0x95>
34{
35public:
52 const char* module_name,
53 const char* owner_file_path,
54 const char* owner_name,
55 Sint32 pos_line,
56 Sint32 pos_column,
57 IMdl_execution_context* context = 0) = 0;
58
82 const char* file_path,
83 const char* owner_file_path,
84 const char* owner_name,
85 Sint32 pos_line,
86 Sint32 pos_column,
87 IMdl_execution_context* context = 0) = 0;
88};
89
100 UVTILE_MODE_FORCE_32_BIT = 0xffffffffU
101};
102
105 mi::base::Interface_declare<0xd725c3bb,0xd34d,0x4a1a,0x93,0x5d,0xa3,0x96,0x53,0x9f,0xb1,0x76>
106{
107public:
109 virtual const char* get_module_name() const = 0;
110
112 virtual const char* get_filename() const = 0;
113
117 virtual IReader* create_reader() const = 0;
118};
119
125 mi::base::Interface_declare<0x0c49fcd6,0xc675,0x4ca5,0xbf,0xae,0xb1,0x59,0xd9,0x75,0x5f,0xe2>
126{
127public:
132 virtual Size get_frame_number() const = 0;
133
138 virtual Size get_count() const = 0;
139
147 virtual const char* get_mdl_file_path( Size i) const = 0;
148
160 virtual const char* get_filename( Size i) const = 0;
161
169 virtual IReader* create_reader( Size i) const = 0;
170
176 virtual base::Uuid get_resource_hash( Size i) const = 0;
177
185 virtual bool get_uvtile_uv( Size i, Sint32& u, Sint32& v) const = 0;
186};
187
193 mi::base::Interface_declare<0x650cbe23,0xed44,0x4c2f,0x9f,0xbc,0x3b,0x64,0x4a,0x08,0x15,0xa1>
194{
195public:
201 virtual bool has_sequence_marker() const = 0;
202
210 virtual Uvtile_mode get_uvtile_mode() const = 0;
211
222 virtual const char* get_mdl_file_path_mask() const = 0;
223
238 virtual const char* get_filename_mask() const = 0;
239
244 virtual Size get_count() const = 0;
245
252 virtual const IMdl_resolved_resource_element* get_element( Size i) const = 0;
253};
254 // end group mi_neuray_mdl_misc
256
257} // namespace neuraylib
258
259} // namespace mi
260
261#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:34
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=0)=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=0)=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:131
Describes a resolved module (or a failed attempt).
Definition: imdl_entity_resolver.h:106
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:126
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 ta 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:194
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
Uint64 Size
Unsigned integral type that is large enough to hold the size of all types.
Definition: types.h:112
signed int Sint32
32-bit signed integer.
Definition: types.h:46
Uvtile_mode
Supported uvtile modes for resources.
Definition: imdl_entity_resolver.h:95
@ UVTILE_MODE_UVTILE0
The UVTILE0 uvtile mode.
Definition: imdl_entity_resolver.h:98
@ UVTILE_MODE_UVTILE1
The UVTILE1 uvtile mode.
Definition: imdl_entity_resolver.h:99
@ UVTILE_MODE_NONE
No uvtile mode.
Definition: imdl_entity_resolver.h:96
@ UVTILE_MODE_UDIM
The UDIM uvtile mode.
Definition: imdl_entity_resolver.h:97
Mixin class template for deriving new interface declarations.
Common namespace for APIs of NVIDIA Advanced Rendering Center GmbH.
Definition: example_derivatives.dox:5
A 128 bit representation of a universally unique identifier (UUID or GUID).
Definition: uuid.h:26