Iray SDK API nvidia_logo_transpbg.gif Up
iexport_api.h
Go to the documentation of this file.
1/***************************************************************************************************
2 * Copyright 2025 NVIDIA Corporation. All rights reserved.
3 **************************************************************************************************/
6
7#ifndef MI_NEURAYLIB_IEXPORT_API_H
8#define MI_NEURAYLIB_IEXPORT_API_H
9
12
13namespace mi {
14
15class IArray;
16class IMap;
17class IString;
18
19namespace neuraylib {
20
21class IBsdf_isotropic_data;
22class ICanvas;
23class IExport_result;
24class IExporter;
25class IImpexp_state;
26class ILightprofile;
27class ITransaction;
28class IVolume_data;
29class IWriter;
30
36class IExport_api : public
37 mi::base::Interface_declare<0xe254f559,0x4056,0x4166,0x83,0x6a,0x4c,0x00,0x90,0x0a,0xdb,0x22>
38{
39public:
41
42
84 ITransaction* transaction,
85 const char* uri,
86 const char* rootgroup,
87 const char* caminst = nullptr,
88 const char* options = nullptr,
89 const IMap* exporter_options = nullptr) const = 0;
90
152 ITransaction* transaction,
153 const char* uri,
154 const IArray* elements,
155 const IMap* exporter_options = nullptr) const = 0;
156
172 ITransaction* transaction,
173 const IArray* elements,
174 const char* file_extension,
175 IString* result_string,
176 const IMap* exporter_options = nullptr) const = 0;
177
210 const char* uri,
211 const ICanvas* canvas,
212 const IMap* export_options = nullptr) const = 0;
213
226 const char* uri, const ILightprofile* lightprofile) const = 0;
227
240 const char* uri,
241 const IBsdf_isotropic_data* reflection,
242 const IBsdf_isotropic_data* transmission) const = 0;
243
263 const char* uri,
264 const char* selectors[],
265 const IVolume_data* data[],
266 Size count) const = 0;
267
269
271
278 virtual Size get_exporter_length() const = 0;
279
288 virtual const IExporter* get_exporter( Size index) const = 0;
289
300 virtual const IExporter* select_exporter_by_extension( const char* extension) const = 0;
301
307 virtual IWriter* get_writer( const char* uri) const = 0;
308
310
312
356 virtual const IString* convert_filename_to_uri( const char* filename) const = 0;
357
412 virtual const IString* convert_uri_to_filename( const char* uri) const = 0;
413
436 ITransaction* transaction,
437 const char* rootgroup,
438 const char* caminst,
439 const char* options) const = 0;
440
450 const char* marker, Size f, Sint32 u, Sint32 v) const = 0;
451
453
454 virtual Sint32 deprecated_export_canvas(
455 const char* uri,
456 const ICanvas* canvas,
457 Uint32 quality,
458 bool force_default_gamma) const = 0;
459
460#ifdef MI_NEURAYLIB_DEPRECATED_15_0
461 inline Sint32 export_canvas(
462 const char* filename,
463 const ICanvas* canvas,
464 Uint32 quality,
465 bool force_default_gamma = false) const
466 { return deprecated_export_canvas( filename, canvas, quality, force_default_gamma); }
467#endif
468};
469 // end group mi_neuray_impexp
471
472} // namespace neuraylib
473
474} // namespace mi
475
476#endif // MI_NEURAYLIB_IEXPORT_API_H
This interface represents static arrays, i.e., arrays with a fixed number of elements.
Definition: iarray.h:37
This interface represents maps, i.e., a key-value based data structure.
Definition: imap.h:41
A simple string class.
Definition: istring.h:22
Mixin class template for deriving new interface declarations.
Definition: interface_declare.h:43
Abstract interface for isotropic BSDF data.
Definition: ibsdf_isotropic_data.h:44
Abstract interface for a canvas represented by a rectangular array of tiles.
Definition: icanvas.h:89
This interface is used to export files.
Definition: iexport_api.h:38
virtual Sint32 export_lightprofile(const char *uri, const ILightprofile *lightprofile) const =0
Exports a light profile to disk.
virtual const IString * frame_uvtile_marker_to_string(const char *marker, Size f, Sint32 u, Sint32 v) const =0
Replaces a frame and/or uv-tile marker by coordinates of a given uv-tile.
virtual const IString * convert_filename_to_uri(const char *filename) const =0
Converts a filename into a URI.
virtual const IExporter * select_exporter_by_extension(const char *extension) const =0
Returns the exporter that would be used for a particular file name extension.
virtual const IExport_result * export_elements(ITransaction *transaction, const char *uri, const IArray *elements, const IMap *exporter_options=nullptr) const =0
Exports scene elements.
virtual Size get_exporter_length() const =0
Returns the number of registered exporters.
virtual const IArray * get_export_dependencies(ITransaction *transaction, const char *rootgroup, const char *caminst, const char *options) const =0
Returns scene dependencies suitable for an export operation.
virtual Sint32 export_canvas(const char *uri, const ICanvas *canvas, const IMap *export_options=nullptr) const =0
Exports a canvas to a file on disk.
virtual Sint32 export_volume_data(const char *uri, const char *selectors[], const IVolume_data *data[], Size count) const =0
Exports a number of volume data sets to a file.
virtual IWriter * get_writer(const char *uri) const =0
Returns a random-access writer that can be used to export to the given resource.
virtual const IString * convert_uri_to_filename(const char *uri) const =0
Converts a URI into a filename.
virtual Sint32 export_bsdf_data(const char *uri, const IBsdf_isotropic_data *reflection, const IBsdf_isotropic_data *transmission) const =0
Exports BSDF data to a file on disk.
virtual const IExport_result * export_elements_to_string(ITransaction *transaction, const IArray *elements, const char *file_extension, IString *result_string, const IMap *exporter_options=nullptr) const =0
Exports scene elements to string.
virtual const IExport_result * export_scene(ITransaction *transaction, const char *uri, const char *rootgroup, const char *caminst=nullptr, const char *options=nullptr, const IMap *exporter_options=nullptr) const =0
Exports a scene.
virtual const IExporter * get_exporter(Size index) const =0
Returns a registered exporter.
This interface represents the result of an export operation.
Definition: iexport_result.h:44
Abstract interface for exporters.
Definition: iexporter.h:33
This interface represents light profiles.
Definition: ilightprofile.h:73
A transaction provides a consistent view on the database.
Definition: itransaction.h:82
Interface representing a volume data set.
Definition: ivolume.h:89
A writer supports binary block writes and string-oriented line writes that accept a zero-terminated s...
Definition: iwriter.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
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.