Iray SDK API nvidia_logo_transpbg.gif Up
mi::neuraylib::IImporter Class Referenceabstract

Abstract interface for importers. More...

#include <iimporter.h>

Inheritance diagram for mi::neuraylib::IImporter:

Public Member Functions

virtual bool test_file_type (const char *extension, const IReader *reader) const =0
 Indicates whether the importer can handle the file type. More...
 
virtual IImport_resultimport_elements (ITransaction *transaction, const char *extension, IReader *reader, const IMap *importer_options, IImpexp_state *state) const =0
 Imports a scene via a reader. More...
 
virtual bool test_file_type (const char *extension) const=0
 Indicates whether a file name extension is supported. More...
 
- Public Member Functions inherited from mi::neuraylib::IImpexp_base
virtual IImpexp_statecreate_impexp_state (const char *uri, const IImpexp_state *parent_state=0) 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...
 
- Public Member Functions inherited from mi::base::IInterface
virtual Uint32 retain () const =0
 Increments the reference count. More...
 
virtual Uint32 release () const =0
 Decrements the reference count. More...
 
virtual const IInterfaceget_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 IInterfaceget_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

- Public Types inherited from mi::base::Interface_declare< 0x1288a8b7, ... >
typedef Interface_declare< id1, ... > Self
 Own type. More...
 
typedef Uuid_t< id1, ... > IID
 Declares the interface ID (IID) of this interface. More...
 
- Public Types inherited from mi::base::Interface_declare< 0xf14bab60, ... >
typedef Interface_declare< id1, ... > Self
 Own type. More...
 
typedef Uuid_t< id1, ... > IID
 Declares the interface ID (IID) of this interface. More...
 
- Public Types inherited from mi::base::IInterface
typedef Uuid_t<0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0> IID
 Declares the interface ID (IID) of this interface. More...
 
- Static Public Member Functions inherited from mi::base::Interface_declare< 0x1288a8b7, ... >
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 Public Member Functions inherited from mi::base::Interface_declare< 0xf14bab60, ... >
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 Public Member Functions inherited from mi::base::IInterface
static bool compare_iid (const Uuid &iid)
 Compares the interface ID iid against the interface ID of this interface. More...
 

Detailed Description

Abstract interface for importers.

Member Function Documentation

 import_elements()

virtual IImport_result * mi::neuraylib::IImporter::import_elements ( ITransaction transaction,
const char *  extension,
IReader reader,
const IMap importer_options,
IImpexp_state state 
) const
pure virtual

Imports a scene via a reader.

Imports all elements from the reader in a format determined by the file extension and (optionally) the lookahead of the reader.

In addition to importer-specific options, every importer has to implement the following standard options:

It is strongly recommended that names for importer-specific options use a prefix related to the importer to avoid name conflicts, e.g., the file name extension.

Parameters
transactionThe transaction to be used.
extensionThe file name extension (which might influence the file format).
readerThe reader to read the byte stream from.
importer_optionsThe options that control the way the importer works (optional).
stateThe current importer state.
Returns
An instance of mi::neuraylib::IImport_result indicating success or failure.

 test_file_type() [1/2]

virtual bool mi::neuraylib::IImpexp_base::test_file_type ( const char *  extension) const
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".

See also
mi::neuraylib::IImporter::test_file_type(), mi::neuraylib::IExporter::test_file_type()
These more specific versions also pass an mi::neuraylib::IReader or mi::neuraylib::IWriter as argument, which can be used to look at lookahead data for magic file headers (readers only) or to decide if the reader or writer capabilities are sufficient to do the import or export (for example, random access capability).

Implements mi::neuraylib::IImpexp_base.

 test_file_type() [2/2]

virtual bool mi::neuraylib::IImporter::test_file_type ( const char *  extension,
const IReader reader 
) const
pure virtual

Indicates whether the importer can handle the file type.

Returns true if the importer can handle the file type determined by the file name extension or by looking at the lookahead. The extension is defined as the part of the file name after and including the first dot, for example, ".mi". This method also checks if the reader has sufficient capabilities to import successfully. If not, the importer shall return false immediately.

For formats that have a mandatory and sufficiently distinguishing magic header, the importer shall use an available lookahead to determine the answer. Otherwise, the importer shall use the file name extension. In addition, if the lookahead is available the importer may check if the file header is plausible. If the file header is not understood by the importer, it should return false.