NVIDIA Iray API
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
iscope.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_ISCOPE_H
9 #define MI_NEURAYLIB_ISCOPE_H
10 
12 
14 
15 namespace mi {
16 
17 namespace neuraylib {
18 
23 class IScope : public
44  mi::base::Interface_declare<0x578df0c5,0xab97,0x460a,0xb5,0x0a,0x2c,0xf8,0x54,0x22,0x31,0xb9>
45 {
46 public:
50  virtual ITransaction* create_transaction() = 0;
51 
62  template<class T>
64  {
65  ITransaction* ptr_itransaction = create_transaction();
66  if ( !ptr_itransaction)
67  return 0;
68  T* ptr_T = static_cast<T*>( ptr_itransaction->get_interface( typename T::IID()));
69  ptr_itransaction->release();
70  return ptr_T;
71  }
72 
78  virtual const char* get_id() const = 0;
79 
87  virtual Uint8 get_privacy_level() const = 0;
88 
92  virtual const char* get_name() const = 0;
93 
97  virtual IScope* get_parent() const = 0;
98 };
99  // end group mi_neuray_database_access
101 
102 } // namespace neuraylib
103 
104 } // namespace mi
105 
106 #endif // MI_NEURAYLIB_ISCOPE_H