NVIDIA Iray API Home  Up
 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, 2016 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 #include <mi/neuraylib/version.h>
17 
18 namespace mi {
19 
20 namespace neuraylib {
21 
26 class ITriangle_mesh :
122  public base::Interface_declare<0x71006633,0x1e05,0x4c21,0xa0,0x09,0x07,0x6f,0x33,0x6d,0x9c,0x89,
123  neuraylib::IScene_element>
124 {
125 public:
126 
128 
129 
131  virtual Uint32 points_size() const = 0;
132 
139  virtual Uint32 points_capacity() const = 0;
140 
147  virtual void reserve_points( Uint32 n) = 0;
148 
158  virtual Sint32 point( Uint32 index, Float32_3_struct& p) const = 0;
159 
169  virtual Sint32 point( Uint32 index, Float64_3_struct& p) const = 0;
170 
176  virtual Uint32 append_point( const Float32_3_struct& p) = 0;
177 
183  virtual Uint32 append_point( const Float64_3_struct& p) = 0;
184 
194  virtual Sint32 set_point( Uint32 index, const Float32_3_struct& p) = 0;
195 
205  virtual Sint32 set_point( Uint32 index, const Float64_3_struct& p) = 0;
206 
208 
210 
212  virtual Uint32 triangles_size() const = 0;
213 
220  virtual Uint32 triangles_capacity() const = 0;
221 
228  virtual void reserve_triangles( Uint32 n) = 0;
229 
233  virtual Triangle_point_indices_struct triangle_point_indices(
234  Triangle_handle_struct hnd) const = 0;
235 
250  const Triangle_point_indices_struct& triangle)= 0;
251 
267  virtual Sint32 set_triangle(
268  Triangle_handle_struct hnd, const Triangle_point_indices_struct& triangle) = 0;
269 
271 
273 
277  virtual const ITriangle_connectivity* access_mesh_connectivity() const = 0;
278 
286  virtual ITriangle_connectivity* edit_mesh_connectivity() = 0;
287 
303  virtual Sint32 attach_mesh_connectivity( ITriangle_connectivity* connectivity) = 0;
304 
306 
308 
315  virtual ITriangle_connectivity* create_connectivity(
317 
324  virtual const ITriangle_connectivity* access_connectivity( Mesh_attribute_name name) const = 0;
325 
336  virtual ITriangle_connectivity* edit_connectivity( Mesh_attribute_name name) = 0;
337 
352  virtual Sint32 attach_connectivity( ITriangle_connectivity* connectivity) = 0;
353 
366 
368 
370 
375  virtual bool has_attribute( Mesh_attribute_name name) const = 0;
376 
389  virtual IAttribute_vector* create_attribute_vector(
390  Mesh_attribute_name name, Uint32 dim = 1) = 0;
391 
397  virtual const IAttribute_vector* access_attribute_vector(
398  Mesh_attribute_name name) const = 0;
399 
410  virtual IAttribute_vector* edit_attribute_vector( Mesh_attribute_name name) = 0;
411 
427  virtual Sint32 attach_attribute_vector( IAttribute_vector* attribute_vector) = 0;
428 
437 
439 
441 
443  virtual const Float32_3_struct& get_bbox_min() const = 0;
444 
446  virtual const Float32_3_struct& get_bbox_max() const = 0;
447 
452  const Float64_4_4_struct& transformation_matrix) const = 0;
453 
455 
457 
462  virtual void set_maximum_displacement( Float32 displacement) = 0;
463 
467  virtual Float32 get_maximum_displacement() const = 0;
468 
470 };
471  // end group mi_neuray_leaf_nodes
473 
474 } // namespace neuraylib
475 
476 #ifdef MI_NEURAYLIB_DEPRECATED_NAMESPACE_MI_TRANSITION
479 using neuraylib::IAttribute_vector;
480 using neuraylib::IScene_element;
481 using neuraylib::ITriangle_connectivity;
482 using neuraylib::ITriangle_mesh;
485 using neuraylib::Triangle_point_indices_struct;
486 #endif // MI_NEURAYLIB_DEPRECATED_NAMESPACE_MI_TRANSITION
487 
488 } // namespace mi
489 
490 #endif // MI_NEURAYLIB_ITRIANGLE_MESH_H