NVIDIA Iray API
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
itriangle_mesh.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_ITRIANGLE_MESH_H
9 #define MI_NEURAYLIB_ITRIANGLE_MESH_H
10 
12 #include <mi/neuraylib/identifier.h>
15 #include <mi/neuraylib/typedefs.h>
16 
17 namespace mi {
18 
23 class ITriangle_mesh :
117  public base::Interface_declare<0x71006633,0x1e05,0x4c21,0xa0,0x09,0x07,0x6f,0x33,0x6d,0x9c,0x89,
118  IScene_element>
119 {
120 public:
121 
123 
124 
126  virtual Uint32 points_size() const = 0;
127 
134  virtual Uint32 points_capacity() const = 0;
135 
142  virtual void reserve_points( Uint32 n) = 0;
143 
153  virtual Sint32 point( Uint32 index, Float32_3_struct& p) const = 0;
154 
164  virtual Sint32 point( Uint32 index, Float64_3_struct& p) const = 0;
165 
171  virtual Uint32 append_point( const Float32_3_struct& p) = 0;
172 
178  virtual Uint32 append_point( const Float64_3_struct& p) = 0;
179 
189  virtual Sint32 set_point( Uint32 index, const Float32_3_struct& p) = 0;
190 
200  virtual Sint32 set_point( Uint32 index, const Float64_3_struct& p) = 0;
201 
203 
205 
207  virtual Uint32 triangles_size() const = 0;
208 
215  virtual Uint32 triangles_capacity() const = 0;
216 
223  virtual void reserve_triangles( Uint32 n) = 0;
224 
228  virtual Triangle_point_indices_struct triangle_point_indices(
229  Triangle_handle_struct hnd) const = 0;
230 
241  const Triangle_point_indices_struct& triangle)= 0;
242 
254  virtual Sint32 set_triangle(
255  Triangle_handle_struct hnd, const Triangle_point_indices_struct& triangle) = 0;
256 
258 
260 
264  virtual const ITriangle_connectivity* access_mesh_connectivity() const = 0;
265 
273  virtual ITriangle_connectivity* edit_mesh_connectivity() = 0;
274 
290  virtual Sint32 attach_mesh_connectivity( ITriangle_connectivity* connectivity) = 0;
291 
293 
295 
302  virtual ITriangle_connectivity* create_connectivity(
304 
310  virtual const ITriangle_connectivity* access_connectivity( Mesh_attribute_name name) const = 0;
311 
321  virtual ITriangle_connectivity* edit_connectivity( Mesh_attribute_name name) = 0;
322 
337  virtual Sint32 attach_connectivity( ITriangle_connectivity* connectivity) = 0;
338 
340 
342 
347  virtual bool has_attribute( Mesh_attribute_name name) const = 0;
348 
365  virtual IAttribute_vector* create_attribute_vector(
366  Mesh_attribute_name name, Uint32 dim = 1) = 0;
367 
377  virtual const IAttribute_vector* access_attribute_vector(
378  Mesh_attribute_name name) const = 0;
379 
394  virtual IAttribute_vector* edit_attribute_vector( Mesh_attribute_name name) = 0;
395 
411  virtual Sint32 attach_attribute_vector( IAttribute_vector* attribute_vector) = 0;
412 
414 
416 
418  virtual const Float32_3_struct& get_bbox_min() const = 0;
419 
421  virtual const Float32_3_struct& get_bbox_max() const = 0;
422 
427  const Float64_4_4_struct& transformation_matrix) const = 0;
428 
430 
432 
438  virtual void set_maximum_displacement( Float32 displacement) = 0;
439 
443  virtual Float32 get_maximum_displacement() const = 0;
444 
446 };
447  // end group mi_neuray_leaf_nodes
449 
450 } // namespace mi
451 
452 #endif // MI_NEURAYLIB_ITRIANGLE_MESH_H