NVIDIA Iray API Home  Up
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
ipolygon_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_IPOLYGON_MESH_H
9 #define MI_NEURAYLIB_IPOLYGON_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 IPolygon_mesh :
128  public base::Interface_declare<0x598d264b,0x1d1f,0x40c9,0x88,0xe6,0x54,0x19,0x30,0x08,0xc7,0xb2,
129  neuraylib::IScene_element>
130 {
131 public:
132 
134 
135 
137  virtual Uint32 points_size() const = 0;
138 
145  virtual Uint32 points_capacity() const = 0;
146 
153  virtual void reserve_points( Uint32 n) = 0;
154 
164  virtual Sint32 point( Uint32 index, Float32_3_struct& p) const = 0;
165 
175  virtual Sint32 point( Uint32 index, Float64_3_struct& p) const = 0;
176 
182  virtual Uint32 append_point( const Float32_3_struct& p) = 0;
183 
189  virtual Uint32 append_point( const Float64_3_struct& p) = 0;
190 
200  virtual Sint32 set_point( Uint32 index, const Float32_3_struct& p) = 0;
201 
211  virtual Sint32 set_point( Uint32 index, const Float64_3_struct& p) = 0;
212 
214 
216 
218  virtual Uint32 polygons_size() const = 0;
219 
223  virtual Uint32 polygon_corners_size( Polygon_handle_struct p) const = 0;
224 
226  virtual bool is_hole( Polygon_handle_struct p) const = 0;
227 
230  virtual Uint32 indices_size() const = 0;
231 
233  virtual bool is_polygon_size_constant() const = 0;
234 
243  virtual Polygon_handle_struct add_polygon( Uint32 num_vertices, bool hole = false) = 0;
244 
246 
248 
252  virtual const IPolygon_connectivity* access_mesh_connectivity() const = 0;
253 
261  virtual IPolygon_connectivity* edit_mesh_connectivity() = 0;
262 
278  virtual Sint32 attach_mesh_connectivity( IPolygon_connectivity* connectivity) = 0;
279 
281 
283 
290  virtual IPolygon_connectivity* create_connectivity(
292 
299  virtual const IPolygon_connectivity* access_connectivity( Mesh_attribute_name name) const = 0;
300 
311  virtual IPolygon_connectivity* edit_connectivity( Mesh_attribute_name name) = 0;
312 
327  virtual Sint32 attach_connectivity( IPolygon_connectivity* connectivity) = 0;
328 
341 
343 
345 
350  virtual bool has_attribute( Mesh_attribute_name name) const = 0;
351 
364  virtual IAttribute_vector* create_attribute_vector(
365  Mesh_attribute_name name, Uint32 dim = 1) = 0;
366 
372  virtual const IAttribute_vector* access_attribute_vector(
373  Mesh_attribute_name name) const = 0;
374 
385  virtual IAttribute_vector* edit_attribute_vector( Mesh_attribute_name name) = 0;
386 
402  virtual Sint32 attach_attribute_vector( IAttribute_vector* attribute_vector) = 0;
403 
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 
437  virtual void set_maximum_displacement( Float32 displacement) = 0;
438 
442  virtual Float32 get_maximum_displacement() const = 0;
443 
445 };
446  // end group mi_neuray_leaf_nodes
448 
449 } // namespace neuraylib
450 
451 #ifdef MI_NEURAYLIB_DEPRECATED_NAMESPACE_MI_TRANSITION
454 using neuraylib::IAttribute_vector;
455 using neuraylib::IPolygon_connectivity;
456 using neuraylib::IPolygon_mesh;
457 using neuraylib::IScene_element;
460 #endif // MI_NEURAYLIB_DEPRECATED_NAMESPACE_MI_TRANSITION
461 
462 } // namespace mi
463 
464 #endif // MI_NEURAYLIB_IPOLYGON_MESH_H