neuray API Programmer's Manual

iexport_api.h File Reference

Description

API component for export operations and exporter management.

Code Example

iexport_api.h

‎/***************************************************************************************************
 * Copyright 2024 NVIDIA Corporation. All rights reserved.
 **************************************************************************************************/

#ifndef MI_NEURAYLIB_IEXPORT_API_H
#define MI_NEURAYLIB_IEXPORT_API_H

#include <mi/base/interface_declare.h>
#include <mi/neuraylib/version.h>

namespace mi {

class IArray;
class IMap;
class IString;

namespace neuraylib {

class IBsdf_isotropic_data;
class ICanvas;
class IExport_result;
class IExporter;
class IImpexp_state;
class ILightprofile;
class ITransaction;
class IVolume_data;
class IWriter;


class IExport_api : public
    mi::base::Interface_declare<0xe254f559,0x4056,0x4166,0x83,0x6a,0x4c,0x00,0x90,0x0a,0xdb,0x22>
{
public:


    virtual const IExport_result* export_scene(
        ITransaction* transaction,
        const char* uri,
        const char* rootgroup,
        const char* caminst = 0,
        const char* options = 0,
        const IMap* exporter_options = 0) const = 0;

    virtual const IExport_result* export_elements(
        ITransaction* transaction,
        const char* uri,
        const IArray* elements,
        const IMap* exporter_options = 0) const = 0;

    virtual const IExport_result* export_elements_to_string(
        ITransaction* transaction,
        const IArray* elements,
        const char* file_extension,
        IString* result_string,
        const IMap* exporter_options = 0) const = 0;

    virtual Sint32 
               export_canvas(
        const char* uri,
        const ICanvas* canvas,
        const IMap* export_options = 0) const = 0;

    virtual Sint32 
               export_lightprofile(
        const char* uri, const ILightprofile* lightprofile) const = 0;

    virtual Sint32 
               export_bsdf_data(
        const char* uri,
        const IBsdf_isotropic_data* reflection,
        const IBsdf_isotropic_data* transmission) const = 0;

    virtual Sint32 
               export_volume_data(
        const char* uri,
        const char* selectors[],
        const IVolume_data* data[],
        Size count) const = 0;




    virtual Size 
               get_exporter_length() const = 0;

    virtual const IExporter* get_exporter( Size index) const = 0;

    virtual const IExporter* select_exporter_by_extension( const char* extension) const = 0;

    virtual IWriter* get_writer( const char* uri) const = 0;




    virtual const IString* convert_filename_to_uri( const char* filename) const = 0;

    virtual const IString* convert_uri_to_filename( const char* uri) const = 0;

    virtual const IArray* get_export_dependencies(
        ITransaction* transaction,
        const char* rootgroup,
        const char* caminst,
        const char* options) const = 0;

    virtual const IString* frame_uvtile_marker_to_string(
        const char* marker, Size f, Sint32 u, Sint32 v) const = 0;


    virtual Sint32 deprecated_export_canvas(
        const char* uri,
        const ICanvas* canvas,
        Uint32 quality,
        bool force_default_gamma) const = 0;

#ifdef MI_NEURAYLIB_DEPRECATED_15_0
    inline Sint32 
               export_canvas(
        const char* filename,
        const ICanvas* canvas,
        Uint32 quality,
        bool force_default_gamma = false) const
    { return deprecated_export_canvas( filename, canvas, quality, force_default_gamma); }
#endif
};
 // end group mi_neuray_impexp

} // namespace neuraylib

} // namespace mi

#endif // MI_NEURAYLIB_IEXPORT_API_H

Namespaces

namespace 
Common namespace for APIs of NVIDIA Advanced Rendering Center GmbH. More...
namespace 
Namespace for the neuray API. More...

Classes

class 
This interface is used to export files. More...