NVIDIA Iray API Home  Up
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
iattribute_vector.h
Go to the documentation of this file.
1 //*****************************************************************************
2 // Copyright 1986, 2016 NVIDIA Corporation. All rights reserved.
3 //*****************************************************************************
6 //*****************************************************************************
7 
8 #ifndef MI_NEURAYLIB_IATTRIBUTE_VECTOR_H
9 #define MI_NEURAYLIB_IATTRIBUTE_VECTOR_H
10 
12 #include <mi/neuraylib/typedefs.h>
13 #include <mi/neuraylib/version.h>
14 
15 namespace mi {
16 
17 namespace neuraylib {
18 
60 {
61  // Tag used to indicate no attribute.
62  ATTR_NONE = 0,
63 
66 
70 
73 
80 
87 
90 
93 
94  // Undocumented, for alignment only.
95  ATTR_FORCE_32_BIT = 0xffffffffU
96 };
97 
98 mi_static_assert( sizeof( Mesh_attribute_name) == sizeof( Uint32));
99 
107 
112 
113  // Undocumented, for alignment only.
114  CONNECTIVITY_FORCE_32_BIT = 0xffffffffU
115 };
116 
117 mi_static_assert( sizeof( Connectivity_map_type) == sizeof( Uint32));
118 
119 
153  public base::Interface_declare<0xfbe79601,0x3c89,0x4a8d,0xbf,0x0d,0xae,0x21,0x59,0x9a,0xbf,0x80>
154 {
155 public:
157 
158 
160  virtual Uint32 size() const = 0;
161 
163  virtual Uint32 capacity() const = 0;
164 
166  virtual void resize( Uint32 size) = 0;
167 
169  virtual void reserve( Uint32 size) = 0;
170 
174  virtual void clear() = 0;
175 
180  virtual bool is_valid_attribute() const = 0;
181 
190  virtual Uint32 array_size() const = 0;
191 
193 
195 
200  virtual Uint32 get_uint32( Uint32 index) const = 0;
201 
208  virtual Sint32 append_uint32( Uint32 u) = 0;
209 
217  virtual Sint32 set_uint32( Uint32 index, Uint32 u) = 0;
218 
220 
222 
227  virtual const Float32_3_struct& get_vector3( Uint32 index) const = 0;
228 
235  virtual Sint32 append_vector3( const Float32_3_struct& v) = 0;
236 
244  virtual Sint32 set_vector3( Uint32 index, const Float32_3_struct& v) = 0;
245 
247 
249 
255  virtual const Float32_3_struct* get_vector3( Uint32 index, Uint32 n) const = 0;
256 
266  virtual Sint32 append_vector3( const Float32_3_struct* v, Uint32 n) = 0;
267 
278  virtual Sint32 set_vector3(
279  Uint32 index, const Float32_3_struct* v, Uint32 n) = 0;
280 
282 
284 
290  virtual const Float32* get_float32( Uint32 index, Uint32 n) const = 0;
291 
300  virtual Sint32 append_float32( const Float32* f, Uint32 n) = 0;
301 
311  virtual Sint32 set_float32( Uint32 index, const Float32* f, Uint32 n) = 0;
312 
314 };
315  // end group mi_neuray_leaf_nodes
317 
318 } // namespace neuraylib
319 
320 #ifdef MI_NEURAYLIB_DEPRECATED_NAMESPACE_MI_TRANSITION
322 using neuraylib::ATTR_FORCE_32_BIT;
324 using neuraylib::ATTR_MAX;
326 using neuraylib::ATTR_NONE;
330 using neuraylib::CONNECTIVITY_FORCE_32_BIT;
335 #endif // MI_NEURAYLIB_DEPRECATED_NAMESPACE_MI_TRANSITION
336 
337 } // namespace mi
338 
339 #endif // MI_NEURAYLIB_IATTRIBUTE_VECTOR_H