NVIDIA Iray API Home  Up
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
isubdivision_surface.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_ISUBDIVISION_SURFACE_H
9 #define MI_NEURAYLIB_ISUBDIVISION_SURFACE_H
10 
12 #include <mi/neuraylib/version.h>
13 
14 namespace mi {
15 
16 class IArray;
17 
18 namespace neuraylib {
19 
24 enum Vertex_feature {
33  VERTEX_FEATURE_FORCE_32_BIT = 0xffffffffU
34 };
35 
36 mi_static_assert( sizeof( Vertex_feature) == sizeof( Uint32));
37 
58  public base::Interface_declare<0x6a65666a,0x849d,0x4081,0xaa,0x32,0xb3,0xa1,0xeb,0xa0,0x6f,0xe2,
59  neuraylib::IPolygon_mesh>
60 {
61 public:
63 
64 
66  virtual Uint32 triangles_size() const = 0;
67 
74  virtual Uint32 triangles_capacity() const = 0;
75 
82  virtual void reserve_triangles( Uint32 n) = 0;
83 
85  virtual Uint32 quads_size() const = 0;
86 
93  virtual Uint32 quads_capacity() const = 0;
94 
101  virtual void reserve_quads( Uint32 n) = 0;
102 
104 
106 
126  virtual Sint32 set_crease_value( Polygon_handle_struct p, Uint32 index, Float32 value) = 0;
127 
135  virtual Float32 get_crease_value( Polygon_handle_struct p, Uint32 index) const = 0;
136 
152  virtual Sint32 set_crease_values( Polygon_handle_struct p, const Float32* values) = 0;
153 
161  virtual const Float32* get_crease_values( Polygon_handle_struct p) const = 0;
162 
175  virtual IArray* get_inconsistent_crease_values() const = 0;
176 
178 
180 
189  virtual Sint32 set_vertex_feature( Uint32 index, Vertex_feature feature) = 0;
190 
195  virtual Vertex_feature get_vertex_feature( Uint32 index) const = 0;
196 
198 };
199  // end group mi_neuray_leaf_nodes
201 
202 } // namespace neuraylib
203 
204 #ifdef MI_NEURAYLIB_DEPRECATED_NAMESPACE_MI_TRANSITION
210 using neuraylib::VERTEX_FEATURE_FORCE_32_BIT;
212 #endif // MI_NEURAYLIB_DEPRECATED_NAMESPACE_MI_TRANSITION
213 
214 } // namespace mi
215 
216 #endif // MI_NEURAYLIB_ISUBDIVISION_SURFACE_H