NVIDIA Iray API
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
iuser_class_factory.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_IUSER_CLASS_FACTORY_H
9 #define MI_NEURAYLIB_IUSER_CLASS_FACTORY_H
10 
13 
14 namespace mi {
15 
16 namespace neuraylib {
17 
22 class ITransaction;
23 
30 class IUser_class_factory : public
31  mi::base::Interface_declare<0x37355ece,0x2ed7,0x4158,0x88,0x35,0xb8,0x60,0xaf,0x75,0x6a,0x64>
32 {
33 public:
50  virtual base::IInterface* create(
51  ITransaction* transaction,
52  Uint32 argc,
53  const base::IInterface* argv[]) = 0;
54 };
55 
64 template <class T>
65 class User_class_factory : public
66  mi::base::Interface_implement<IUser_class_factory>
67 {
68 public:
79  ITransaction* transaction,
80  Uint32 argc,
81  const base::IInterface* argv[])
82  {
83  // avoid warnings
84  (void) transaction;
85  (void) argc;
86  (void) argv;
87 
88  if( argc != 0)
89  return 0;
90  return new T;
91  }
92 };
93  // end group mi_neuray_plugins
95 
96 } // namespace neuraylib
97 
98 } // namespace mi
99 
100 #endif // MI_NEURAYLIB_IUSER_CLASS_FACTORY_H