MDL SDK API nvidia_logo_transpbg.gif Up
mi::neuraylib::IMdle_deserialization_callback Class Referenceabstract

Callback to map references to MDLE modules during deserialization. More...

#include <imdl_impexp_api.h>

Inheritance diagram for mi::neuraylib::IMdle_deserialization_callback:

Public Member Functions

virtual const IStringget_deserialized_filename (const char *serialized_filename) const =0
 Returns a the filename of an MDLE module given its serialized filename. 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< 0xe7f636eb, ... >
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< 0xe7f636eb, ... >
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

Callback to map references to MDLE modules during deserialization.

The name of an MDLE module is the absolute filename of the module. This makes it difficult to to move such modules around since that requires adjusting all references. This callback allows to rewrite such references during deserialization. The reverse mapping should be implemented in an corresponding instance of mi::neuraylib::IMdle_serialization_callback.

One possible solution is to choose a filename that is relative to a known reference point that will be moved together with the MDLE file, e.g., the main scene file.

See also
mi::neuraylib::IMdle_serialization_callback, mi::neuraylib::IMdl_impexp_api::deserialize_function_name() (two overloads), mi::neuraylib::IMdl_impexp_api::deserialize_module_name()

Member Function Documentation

 get_deserialized_filename()

virtual const IString * mi::neuraylib::IMdle_deserialization_callback::get_deserialized_filename ( const char *  serialized_filename) const
pure virtual

Returns a the filename of an MDLE module given its serialized filename.

The callback might get involved several times with the same argument. You might want to cache results if the computation is expensive.

Parameters
serialized_filenameThe "serialized filename" of an MDLE module. This is the string that has been returned by mi::neuraylib::IMdle_serialization_callback::get_serialized_filename().
Returns
The actual filename of that MDLE module.