NVIDIA Iray API
 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, 2014 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 
17 namespace mi {
18 
23 class IPolygon_mesh :
123  public base::Interface_declare<0x598d264b,0x1d1f,0x40c9,0x88,0xe6,0x54,0x19,0x30,0x08,0xc7,0xb2,
124  IScene_element>
125 {
126 public:
127 
129 
130 
132  virtual Uint32 points_size() const = 0;
133 
140  virtual Uint32 points_capacity() const = 0;
141 
148  virtual void reserve_points( Uint32 n) = 0;
149 
159  virtual Sint32 point( Uint32 index, Float32_3_struct& p) const = 0;
160 
170  virtual Sint32 point( Uint32 index, Float64_3_struct& p) const = 0;
171 
177  virtual Uint32 append_point( const Float32_3_struct& p) = 0;
178 
184  virtual Uint32 append_point( const Float64_3_struct& p) = 0;
185 
195  virtual Sint32 set_point( Uint32 index, const Float32_3_struct& p) = 0;
196 
206  virtual Sint32 set_point( Uint32 index, const Float64_3_struct& p) = 0;
207 
209 
211 
213  virtual Uint32 polygons_size() const = 0;
214 
218  virtual Uint32 polygon_corners_size( Polygon_handle_struct p) const = 0;
219 
221  virtual bool is_hole( Polygon_handle_struct p) const = 0;
222 
225  virtual Uint32 indices_size() const = 0;
226 
228  virtual bool is_polygon_size_constant() const = 0;
229 
238  virtual Polygon_handle_struct add_polygon( Uint32 num_vertices, bool hole = false) = 0;
239 
241 
243 
247  virtual const IPolygon_connectivity* access_mesh_connectivity() const = 0;
248 
256  virtual IPolygon_connectivity* edit_mesh_connectivity() = 0;
257 
273  virtual Sint32 attach_mesh_connectivity( IPolygon_connectivity* connectivity) = 0;
274 
276 
278 
285  virtual IPolygon_connectivity* create_connectivity(
287 
293  virtual const IPolygon_connectivity* access_connectivity( Mesh_attribute_name name) const = 0;
294 
304  virtual IPolygon_connectivity* edit_connectivity( Mesh_attribute_name name) = 0;
305 
320  virtual Sint32 attach_connectivity( IPolygon_connectivity* connectivity) = 0;
321 
323 
325 
330  virtual bool has_attribute( Mesh_attribute_name name) const = 0;
331 
344  virtual IAttribute_vector* create_attribute_vector(
345  Mesh_attribute_name name, Uint32 dim = 1) = 0;
346 
352  virtual const IAttribute_vector* access_attribute_vector(
353  Mesh_attribute_name name) const = 0;
354 
365  virtual IAttribute_vector* edit_attribute_vector( Mesh_attribute_name name) = 0;
366 
382  virtual Sint32 attach_attribute_vector( IAttribute_vector* attribute_vector) = 0;
383 
385 
387 
389  virtual const Float32_3_struct& get_bbox_min() const = 0;
390 
392  virtual const Float32_3_struct& get_bbox_max() const = 0;
393 
398  const Float64_4_4_struct& transformation_matrix) const = 0;
399 
401 
403 
409  virtual void set_maximum_displacement( Float32 displacement) = 0;
410 
414  virtual Float32 get_maximum_displacement() const = 0;
415 
417 
418 };
419  // end group mi_neuray_leaf_nodes
421 
422 } // namespace mi
423 
424 #endif // MI_NEURAYLIB_IPOLYGON_MESH_H