mi::neuraylib::IExtension_api Class Reference
[Configuration Interfaces]
Description
This interface is used to extent the neuray API. For example it offers methods to load and to set up plugins.
User classes
- virtual Sint32 register_class( const char* class_name, base::Uuid uuid, IUser_class_factory* factory) =0
- Registers a class with the neuray API. More...
- template< class T>Sint32 register_class( const char* class_name)
- Registers a class with the neuray API. More...
- virtual Sint32 unregister_class( const char* class_name, base::Uuid uuid) =0
- Unregisters a class with the neuray API. More...
- template< class T>Sint32 unregister_class( const char* class_name)
- Unregisters a class with the neuray API. More...
Importers and exporters
- virtual Sint32 register_exporter( IExporter* exporter) =0
- Registers a new exporter with the neuray API. More...
- virtual Sint32 register_importer( IImporter* importer) =0
- Registers a new importer with the neuray API. More...
- virtual Sint32 unregister_exporter( IExporter* exporter) =0
- Unregisters an exporter registered with the neuray API. More...
- virtual Sint32 unregister_importer( IImporter* importer) =0
- Unregisters an importer registered with the neuray API. More...
Structure declarations
- virtual Sint32 register_structure_decl( const char* structure_name, const IStructure_decl* decl) =0
- Registers a structure declaration with the neuray API. More...
- virtual Sint32 unregister_structure_decl( const char* structure_name) =0
- Unregisters a structure declaration with the neuray API. More...
Enum declarations
- virtual Sint32 register_enum_decl( const char* enum_name, const IEnum_decl* decl) =0
- Registers an enum declaration with the neuray API. More...
- virtual Sint32 unregister_enum_decl( const char* enum_name) =0
- Unregisters an enum declaration with the neuray API. More...
Member Functions
- virtual Sint32 mi::neuraylib::IExtension_api::register_class( const char* class_name, base::Uuid uuid, IUser_class_factory* factory) [pure virtual]
-
Registers a class with the neuray API. All user-defined classes to be used with the neuray API must be registered. The only exception are classes that never cross the API boundary, for example, classes only used locally within a plugin. Class registration must be done in mi::neuraylib::IPlugin::init() or before has been started.
Parameters
- class_name
- The class name under which the class is to be registered. The class name must consist only of alphanumeric characters or underscores, must not start with an underscore, and must not be the empty string.
- uuid
- The class ID of the class. You can simply pass IID() of your class derived from mi::neuraylib::User_class.
- factory
- The factory method of the class.
Returns
- 0: Success.
- -1: There is already a class or structure declaration registered under the name class_name or UUID uuid.
- -2: Invalid parameters (NULL pointer).
- -3: The method may not be called at that point of time.
- -4: Invalid class name.
-
template< class T>
Sint32 mi::neuraylib::IExtension_api::register_class( const char* class_name) [inline] -
Registers a class with the neuray API. All user-defined classes to be used with the neuray API must be registered. The only exception are classes that never cross the API boundary, for example, classes only used locally within a plugin. Class registration must be done in mi::neuraylib::IPlugin::init() or before has been started.
This templated member function is a wrapper of the non-template variant for the user's convenience. It uses the default class factory mi::neuraylib::User_class_factory specialized for T.
Parameters
- class_name
- The class name under which the class is to be registered. The class name must consist only of alphanumeric characters or underscores, must not start with an underscore, and must not be the empty string.
Returns
- 0: Success.
- -1: There is already a class or structure declaration registered under the name class_name or UUID T::IID().
- -2: Invalid parameters (NULL pointer).
- -3: The method may not be called at that point of time.
- -4: Invalid class name.
- 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 neuray API.
Parameters
- enum_name
- The 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.
- decl
- The 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 (NULL pointer).
- -4: Invalid name for an enum declaration.
- -6: The enum declaration is empty and therefore invalid.
- virtual Sint32 mi::neuraylib::IExtension_api::register_exporter( IExporter* exporter) [pure virtual]
-
Registers a new exporter with the neuray API. Importer registration must be done in mi::neuraylib::IPlugin::exit() or before has been started.
Parameters
- exporter
- The new exporter to register.
Returns
- 0: Success.
- -1: Invalid parameters (NULL pointer).
- -2: The method may not be called at that point of time.
- virtual Sint32 mi::neuraylib::IExtension_api::register_importer( IImporter* importer) [pure virtual]
-
Registers a new importer with the neuray API. Importer registration must be done in mi::neuraylib::IPlugin::exit() or before has been started.
Parameters
- importer
- The new importer to register.
Returns
- 0: Success.
- -1: Invalid parameters (NULL pointer).
- -2: The method may not be called at that point of time.
- 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 neuray 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_name
- The 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.
- decl
- The 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 (NULL pointer).
- -4: Invalid name for a structure declaration.
- -5: A registration under the name structure_name would cause an infinite cycle of nested structure types.
- virtual Sint32 mi::neuraylib::IExtension_api::unregister_class( const char* class_name, base::Uuid uuid) [pure virtual]
-
Unregisters a class with the neuray API. Class unregistration must be done in mi::neuraylib::IPlugin::exit() or after has been shut down.
Parameters
- class_name
- The class name under which the class was registered.
- uuid
- The class ID of the class. You can simply pass IID() of your class derived from mi::neuraylib::User_class.
Returns
- 0: Success.
- -1: There is no class declaration registered under the name class_name and/or UUID uuid.
- -2: Invalid parameters (NULL pointer).
- -3: The method may not be called at that point of time.
- -4: Invalid class name.
-
template< class T>
Sint32 mi::neuraylib::IExtension_api::unregister_class( const char* class_name) [inline] -
Unregisters a class with the neuray API. Class unregistration must be done in mi::neuraylib::IPlugin::exit() or after has been shut down.
This templated member function is a wrapper of the non-template variant for the user's convenience. It uses the default class factory mi::neuraylib::User_class_factory specialized for T.
Parameters
- class_name
- The class name under which the class was registered.
Returns
- 0: Success.
- -1: There is no class declaration registered under the name class_name and/or UUID uuid.
- -2: Invalid parameters (NULL pointer).
- -3: The method may not be called at that point of time.
- -4: Invalid class name.
- virtual Sint32 mi::neuraylib::IExtension_api::unregister_enum_decl( const char* enum_name) [pure virtual]
-
Unregisters an enum declaration with the neuray API.
Parameters
- enum_name
- The 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 (NULL pointer).
- -4: Invalid name for an enum declaration.
- virtual Sint32 mi::neuraylib::IExtension_api::unregister_exporter( IExporter* exporter) [pure virtual]
-
Unregisters an exporter registered with the neuray API. Unregistration must be done in mi::neuraylib::IPlugin::exit() or after has been shut down.
Parameters
- exporter
- The exporter to unregister.
Returns
- 0: Success.
- -1: Invalid parameters (NULL pointer).
- -2: The method may not be called at that point of time.
- -3: This exporter is not registered.
- virtual Sint32 mi::neuraylib::IExtension_api::unregister_importer( IImporter* importer) [pure virtual]
-
Unregisters an importer registered with the neuray API. Unregistration must be done in mi::neuraylib::IPlugin::exit() or after has been shut down.
Parameters
- importer
- The importer to unregister.
Returns
- 0: Success.
- -1: Invalid parameters (NULL pointer).
- -2: The method may not be called at that point of time.
- -3: This importer is not registered.
- virtual Sint32 mi::neuraylib::IExtension_api::unregister_structure_decl( const char* structure_name) [pure virtual]
-
Unregisters a structure declaration with the neuray API.
Parameters
- structure_name
- The 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 (NULL pointer).
- -4: Invalid name for a structure declaration.
- -6: The structure declaration is predefined and cannot be unregistered.