NVIDIA Iray API
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
iextension_api.h
Go to the documentation of this file.
1 //*****************************************************************************
2 // Copyright 1986, 2014 NVIDIA Corporation. All rights reserved.
3 //*****************************************************************************
6 //*****************************************************************************
7 
8 #ifndef MI_NEURAYLIB_IEXTENSION_API_H
9 #define MI_NEURAYLIB_IEXTENSION_API_H
10 
11 #include <mi/base/handle.h>
14 #include <mi/neuraylib/version.h>
15 
16 namespace mi {
17 
18 class ICall_decl;
19 class IEnum_decl;
20 class IStructure_decl;
21 
22 namespace neuraylib {
23 
28 class IExporter;
29 class IImporter;
30 
33 class IExtension_api : public
34  mi::base::Interface_declare<0xdf2dd31e,0xeeaf,0x40b2,0x8c,0x5f,0x0a,0xb2,0xad,0x44,0x61,0x91>
35 {
36 public:
38 
39 
60  virtual Sint32 register_class(
61  const char* class_name, base::Uuid uuid, IUser_class_factory* factory) = 0;
62 
84  template <class T>
85  Sint32 register_class( const char* class_name)
86  {
88  return register_class( class_name, typename T::IID(), factory.get());
89  }
90 
92 
94 
105  virtual Sint32 register_importer( IImporter* importer) = 0;
106 
117  virtual Sint32 register_exporter( IExporter* exporter) = 0;
118 
130  virtual Sint32 unregister_importer( IImporter* importer) = 0;
131 
143  virtual Sint32 unregister_exporter( IExporter* exporter) = 0;
144 
146 
148 
171  const char* structure_name, const IStructure_decl* decl) = 0;
172 
184  virtual Sint32 unregister_structure_decl( const char* structure_name) = 0;
185 
187 
189 
211  virtual Sint32 register_call_decl(
212  const char* call_name, const ICall_decl* decl) = 0;
213 
223  virtual Sint32 unregister_call_decl( const char* call_name) = 0;
224 
226 
228 
245  virtual Sint32 register_enum_decl(
246  const char* enum_name, const IEnum_decl* decl) = 0;
247 
257  virtual Sint32 unregister_enum_decl( const char* enum_name) = 0;
258 
260 
261  virtual const IStructure_decl* MI_NEURAYLIB_DEPRECATED_METHOD_5_0(get_structure_decl)(
262  const char* structure_name) const = 0;
263 
264  virtual const ICall_decl* MI_NEURAYLIB_DEPRECATED_METHOD_5_0(get_call_decl)(
265  const char* call_name) const = 0;
266 
267  virtual const IEnum_decl* MI_NEURAYLIB_DEPRECATED_METHOD_5_0(get_enum_decl)(
268  const char* enum_name) const = 0;
269 };
270  // end group mi_neuray_configuration
272 
273 } // namespace neuraylib
274 
275 } // namespace mi
276 
277 #endif // MI_NEURAYLIB_IEXTENSION_API_H