iextension_api.h File Reference
Description
API component that allows extensions of the neuray API.
Code Example
iextension_api.h
/***************************************************************************************************
* Copyright 2024 NVIDIA Corporation. All rights reserved.
**************************************************************************************************/
#ifndef MI_NEURAYLIB_IEXTENSION_API_H
#define MI_NEURAYLIB_IEXTENSION_API_H
#include <mi/base/handle.h>
#include <mi/base/interface_declare.h>
#include <mi/neuraylib/iuser_class_factory.h>
namespace mi {
class IEnum_decl;
class IStructure_decl;
namespace neuraylib {
class IExporter;
class IImporter;
class IExtension_api : public
mi::base::Interface_declare<0xdf2dd31e,0xeeaf,0x40b2,0x8c,0x5f,0x0a,0xb2,0xad,0x44,0x61,0x91>
{
public:
virtual Sint32
register_class(
const char* class_name, base::Uuid uuid, IUser_class_factory* factory) = 0;
template <class T>
Sint32
register_class( const char* class_name)
{
mi::base::Handle< IUser_class_factory> factory( new User_class_factory< T>());
return register_class( class_name, typename T::IID(), factory.get());
}
virtual Sint32
unregister_class( const char* class_name, base::Uuid uuid) = 0;
template <class T>
Sint32
unregister_class( const char* class_name)
{
return unregister_class( class_name, typename T::IID());
}
virtual Sint32
register_importer( IImporter* importer) = 0;
virtual Sint32
register_exporter( IExporter* exporter) = 0;
virtual Sint32
unregister_importer( IImporter* importer) = 0;
virtual Sint32
unregister_exporter( IExporter* exporter) = 0;
virtual Sint32
register_structure_decl(
const char* structure_name, const IStructure_decl* decl) = 0;
virtual Sint32
unregister_structure_decl( const char* structure_name) = 0;
virtual Sint32
register_enum_decl(
const char* enum_name, const IEnum_decl* decl) = 0;
virtual Sint32
unregister_enum_decl( const char* enum_name) = 0;
};
// end group mi_neuray_configuration
} // namespace neuraylib
} // namespace mi
#endif // MI_NEURAYLIB_IEXTENSION_API_H
Namespaces
- namespace
- Common namespace for APIs of NVIDIA Advanced Rendering Center GmbH. More...
- namespace
- Namespace for the neuray API. More...
Classes
- class
- This interface is used to extent the neuray API. More...