NVIDIA Iray API
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
icompound.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_ICOMPOUND_H
9 #define MI_NEURAYLIB_ICOMPOUND_H
10 
11 #include <mi/neuraylib/idata.h>
12 
13 namespace mi {
14 
28 class ICompound : public
62  base::Interface_declare<0x65437cd6,0x9727,0x488c,0xa9,0xc5,0x92,0x42,0x43,0xf5,0x5b,0xa0,
63  IData_collection>
64 {
65 public:
67  virtual Size get_number_of_rows() const = 0;
68 
72  virtual Size get_number_of_columns() const = 0;
73 
77  virtual Size get_length() const = 0;
78 
80  virtual const char* get_element_type_name() const = 0;
81 
85  virtual bool get_value( Size row, Size column, bool& value) const = 0;
86 
90  virtual bool get_value( Size row, Size column, Sint32& value) const = 0;
91 
95  virtual bool get_value( Size row, Size column, Uint32& value) const = 0;
96 
100  virtual bool get_value( Size row, Size column, Float32& value) const = 0;
101 
105  virtual bool get_value( Size row, Size column, Float64& value) const = 0;
106 
110  template<class T>
111  T get_value( Size row, Size column) const
112  {
113  T value;
114  bool result = get_value( row, column, value);
115  return result ? value : static_cast<T>( 0);
116  }
117 
121  virtual bool set_value( Size row, Size column, bool value) = 0;
122 
126  virtual bool set_value( Size row, Size column, Sint32 value) = 0;
127 
131  virtual bool set_value( Size row, Size column, Uint32 value) = 0;
132 
136  virtual bool set_value( Size row, Size column, Float32 value) = 0;
137 
141  virtual bool set_value( Size row, Size column, Float64 value) = 0;
142 
147  virtual void get_values( bool* values) const = 0;
148 
153  virtual void get_values( Sint32* values) const = 0;
154 
159  virtual void get_values( Uint32* values) const = 0;
160 
165  virtual void get_values( Float32* values) const = 0;
166 
171  virtual void get_values( Float64* values) const = 0;
172 
177  virtual void set_values( const bool* values) = 0;
178 
183  virtual void set_values( const Sint32* values) = 0;
184 
189  virtual void set_values( const Uint32* values) = 0;
190 
195  virtual void set_values( const Float32* values) = 0;
196 
201  virtual void set_values( const Float64* values) = 0;
202 
204 
206 };
207  // end group mi_neuray_compounds
209 
210 } // namespace mi
211 
212 #endif // MI_NEURAYLIB_ICOMPOUND_H