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

This interface is used to extend the MDL SDK API. More...

#include <iextension_api.h>

Inheritance diagram for mi::neuraylib::IExtension_api:

Public Member Functions

User classes
virtual Sint32 register_class (const char *class_name, base::Uuid uuid, IUser_class_factory *factory)=0
 Not supported. More...
 
template<class T>
Sint32 register_class (const char *class_name)
 Not supported. More...
 
virtual Sint32 unregister_class (const char *class_name, base::Uuid uuid)=0
 Not supported. More...
 
template<class T>
Sint32 unregister_class (const char *class_name)
 Not supported. More...
 
Importers and exporters
virtual Sint32 register_importer (IImporter *importer)=0
 Not supported. More...
 
virtual Sint32 register_exporter (IExporter *exporter)=0
 Not supported. More...
 
virtual Sint32 unregister_importer (IImporter *importer)=0
 Not supported. More...
 
virtual Sint32 unregister_exporter (IExporter *exporter)=0
 Not supported. More...
 
Structure declarations
virtual Sint32 register_structure_decl (const char *structure_name, const IStructure_decl *decl)=0
 Registers a structure declaration with the MDL SDK API. More...
 
virtual Sint32 unregister_structure_decl (const char *structure_name)=0
 Unregisters a structure declaration with the MDL SDK API. More...
 
Enum declarations
virtual Sint32 register_enum_decl (const char *enum_name, const IEnum_decl *decl)=0
 Registers an enum declaration with the MDL SDK API. More...
 
virtual Sint32 unregister_enum_decl (const char *enum_name)=0
 Unregisters an enum declaration with the MDL SDK API. 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< 0xdf2dd31e, ... >
using Self = Interface_declare< id1, ... >
 Own type. More...
 
using IID = Uuid_t< id1, ... >
 Declares the interface ID (IID) of this interface. More...
 
- Public Types inherited from mi::base::IInterface
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 Public Member Functions inherited from mi::base::Interface_declare< 0xdf2dd31e, ... >
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

This interface is used to extend the MDL SDK API.

It offers methods to register enum and structure declarations.

Member Function Documentation

 register_class() [1/2]

template<class T>
Sint32 mi::neuraylib::IExtension_api::register_class ( const char *  class_name)

Not supported.

 register_class() [2/2]

virtual Sint32 mi::neuraylib::IExtension_api::register_class ( const char *  class_name,
base::Uuid  uuid,
IUser_class_factory *  factory 
)
pure virtual

Not supported.

 register_enum_decl()

virtual Sint32 mi::neuraylib::IExtension_api::register_enum_decl ( const char *  enum_name,
const IEnum_decl decl 
)
pure virtual

Registers an enum declaration with the MDL SDK API.

Parameters
enum_nameThe name to be used to refer to this enum declaration. The name must consist only of alphanumeric characters or underscores, must not start with an underscore, and must not be the empty string.
declThe enum declaration. The declaration is internally cloned such that subsequent changes have no effect on the registered declaration.
Returns
  • 0: Success.
  • -1: There is already a class, structure, or enum declaration registered under the name enum_name.
  • -2: Invalid parameters (nullptr).
  • -4: Invalid name for an enum declaration.
  • -6: The enum declaration is empty and therefore invalid.

 register_exporter()

virtual Sint32 mi::neuraylib::IExtension_api::register_exporter ( IExporter *  exporter)
pure virtual

Not supported.

 register_importer()

virtual Sint32 mi::neuraylib::IExtension_api::register_importer ( IImporter *  importer)
pure virtual

Not supported.

 register_structure_decl()

virtual Sint32 mi::neuraylib::IExtension_api::register_structure_decl ( const char *  structure_name,
const IStructure_decl decl 
)
pure virtual

Registers a structure declaration with the MDL SDK API.

Note that the type names of the structure members are not checked for validity here (except for cycles). Thus, it is possible that this methods succeeds, but creating an instance of the type structure_name will fail.

Parameters
structure_nameThe name to be used to refer to this structure declaration. The name must consist only of alphanumeric characters or underscores, must not start with an underscore, and must not be the empty string.
declThe structure declaration. The declaration is internally cloned such that subsequent changes have no effect on the registered declaration.
Returns
  • 0: Success.
  • -1: There is already a class, structure, enum declaration registered under the name structure_name.
  • -2: Invalid parameters (nullptr).
  • -4: Invalid name for a structure declaration.
  • -5: A registration under the name structure_name would cause an infinite cycle of nested structure types.

 unregister_class() [1/2]

template<class T>
Sint32 mi::neuraylib::IExtension_api::unregister_class ( const char *  class_name)
inline

Not supported.

 unregister_class() [2/2]

virtual Sint32 mi::neuraylib::IExtension_api::unregister_class ( const char *  class_name,
base::Uuid  uuid 
)
pure virtual

Not supported.

 unregister_enum_decl()

virtual Sint32 mi::neuraylib::IExtension_api::unregister_enum_decl ( const char *  enum_name)
pure virtual

Unregisters an enum declaration with the MDL SDK API.

Parameters
enum_nameThe name of the enum declaration to be unregistered.
Returns
  • 0: Success.
  • -1: There is no enum declaration registered under the name enum_name.
  • -2: Invalid parameters (nullptr).
  • -4: Invalid name for an enum declaration.

 unregister_exporter()

virtual Sint32 mi::neuraylib::IExtension_api::unregister_exporter ( IExporter *  exporter)
pure virtual

Not supported.

 unregister_importer()

virtual Sint32 mi::neuraylib::IExtension_api::unregister_importer ( IImporter *  importer)
pure virtual

Not supported.

 unregister_structure_decl()

virtual Sint32 mi::neuraylib::IExtension_api::unregister_structure_decl ( const char *  structure_name)
pure virtual

Unregisters a structure declaration with the MDL SDK API.

Parameters
structure_nameThe name of the structure declaration to be unregistered.
Returns
  • 0: Success.
  • -1: There is no structure declaration registered under the name structure_name.
  • -2: Invalid parameters (nullptr).
  • -4: Invalid name for a structure declaration.
  • -6: The structure declaration is predefined and cannot be unregistered.