Abstract interface for exporters. More...
#include <iexporter.h>
Public Member Functions | |
virtual bool | test_file_type (const char *extension, const IWriter *writer) const =0 |
Indicates whether the exporter can handle the file type. More... | |
virtual IExport_result * | export_scene (ITransaction *transaction, const char *extension, IWriter *writer, const char *rootgroup, const char *caminst, const char *options, const IMap *exporter_options, IImpexp_state *state) const =0 |
Exports a scene via a writer. More... | |
virtual IExport_result * | export_elements (ITransaction *transaction, const char *extension, IWriter *writer, const IArray *elements, const IMap *exporter_options, IImpexp_state *state) const =0 |
Exports a set of named elements via a writer. More... | |
virtual bool | test_file_type (const char *extension) const=0 |
Indicates whether a file name extension is supported. More... | |
![]() | |
virtual IImpexp_state * | create_impexp_state (const char *uri, const IImpexp_state *parent_state=nullptr) const =0 |
Returns a state suitable for passing it to a recursive import or export call. More... | |
virtual bool | test_file_type (const char *extension) const =0 |
Indicates whether a file name extension is supported. More... | |
virtual Impexp_priority | get_priority () const =0 |
Returns the priority of the importer or exporter. More... | |
virtual const char * | get_supported_extensions (Uint32 i) const =0 |
Returns the i -th supported file name extension. More... | |
virtual const char * | get_name () const =0 |
Returns a concise single-line clear text description of the importer or exporter. More... | |
virtual const char * | get_author () const =0 |
Returns a concise single-line clear text description of the author of this importer or exporter. More... | |
virtual base::Uuid | get_uuid () const =0 |
Returns the unique identifier for the importer or exporter. More... | |
virtual Uint32 | get_major_version () const =0 |
Returns the major version number of the importer or exporter. More... | |
virtual Uint32 | get_minor_version () const =0 |
Returns the minor version number of the importer or exporter. More... | |
![]() | |
virtual Uint32 | retain () const =0 |
Increments the reference count. More... | |
virtual Uint32 | release () const =0 |
Decrements the reference count. More... | |
virtual const IInterface * | get_interface (const Uuid &interface_id) const =0 |
Acquires a const interface from another. More... | |
template<class T> | |
const T * | get_interface () const |
Acquires a const interface from another. More... | |
virtual IInterface * | get_interface (const Uuid &interface_id)=0 |
Acquires a mutable interface from another. More... | |
template<class T> | |
T * | get_interface () |
Acquires a mutable interface from another. More... | |
virtual Uuid | get_iid () const =0 |
Returns the interface ID of the most derived interface. More... | |
Additional Inherited Members | |
![]() | |
using | Self = Interface_declare< id1, ... > |
Own type. More... | |
using | IID = Uuid_t< id1, ... > |
Declares the interface ID (IID) of this interface. More... | |
![]() | |
using | Self = Interface_declare< id1, ... > |
Own type. More... | |
using | IID = Uuid_t< id1, ... > |
Declares the interface ID (IID) of this interface. More... | |
![]() | |
using | IID = Uuid_t<0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0> |
Declares the interface ID (IID) of this interface. More... | |
![]() | |
static bool | compare_iid (const Uuid &iid) |
Compares the interface ID iid against the interface ID of this interface and of its ancestors. More... | |
![]() | |
static bool | compare_iid (const Uuid &iid) |
Compares the interface ID iid against the interface ID of this interface and of its ancestors. More... | |
![]() | |
static bool | compare_iid (const Uuid &iid) |
Compares the interface ID iid against the interface ID of this interface. More... | |
Abstract interface for exporters.
|
pure virtual |
Exports a set of named elements via a writer.
Writes the named elements to the writer in a format determined by the exporter and the given extension. Note that in contrast to export_scene() references are not followed recursively.
The exporter can expect that the elements array contains no duplicates and that elements that are referenced come before elements that reference them. It is possible that these two conditions on the elements array are violated, but the exporter may then have undefined behavior, for example, produce invalid files.
In addition to exporter-specific options, every exporter has to implement the following standard option:
"strip_prefix"
of type mi::IString: If present, this prefix is to be stripped from all names of database elements if they have the same prefix. Default: the empty string.It is strongly recommended that names for exporter-specific options use a prefix related to the exporter to avoid name conflicts, e.g., the file name extension.
In the case of the .mi file format, the exported file will contain no render statement.
transaction | The transaction to be used. |
extension | The file name extension (which might influence the file format). |
writer | The writer to write the byte stream to. |
state | The current exporter state. |
elements | The array of elements to be exported. |
exporter_options | The options that control the way the exporter works (optional). |
|
pure virtual |
Exports a scene via a writer.
Writes the scene identified by the root group, the camera instance, and the options to the writer in a format determined by the exporter and the given extension.
Any elements referenced by the three argument elements are written as well, recursively, in an order that allows re-importing (e.g., in .mi files, a referenced element must precede the reference). The scene graph cannot contain cyclic references and an exporter does not need to take any precautions to detect cycles.
In addition to exporter-specific options, every exporter has to implement the following standard option:
"strip_prefix"
of type mi::IString: This prefix is to be stripped from the names of all exported elements if they have the same prefix. Default: the empty string.It is strongly recommended that names for exporter-specific options use a prefix related to the exporter to avoid name conflicts, e.g., the file name extension.
In the case of the .mi file format, the exported file will contain a render statement.
transaction | The transaction to be used. |
extension | The file name extension (which might influence the file format). |
writer | The writer to write the byte stream to. |
state | The current exporter state. |
rootgroup | The root group of the scene to be exported. |
caminst | The camera instance of the scene to be exported (optional). |
options | The options of the scene to be exported (optional). |
exporter_options | The options that control the way the exporter works (optional). |
|
virtual |
Indicates whether a file name extension is supported.
Returns true
if the importer or exporter can handle the file type determined by the file name extension. The extension is defined as the part of the file name after and including the first dot, for example, ".mi"
.
Implements mi::neuraylib::IImpexp_base.
|
pure virtual |
Indicates whether the exporter can handle the file type.
Returns true
if the exporter can handle the file type determined by the file name extension and if the writer has sufficient capabilities for export (such as random access or availability of a file handle if that is required for this exporter). The extension is defined as the part of the filename after and including the first dot, for example, ".mi". In the case of missing capabilities the exporter shall return false
immediately.