NVIDIA Iray API
 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, 2014 NVIDIA Corporation. All rights reserved.
3 //*****************************************************************************
6 //*****************************************************************************
7 
8 #ifndef MI_NEURAYLIB_ISUBDIVISION_SURFACE_H
9 #define MI_NEURAYLIB_ISUBDIVISION_SURFACE_H
10 
12 
13 namespace mi {
14 
15 class IArray;
16 
21 enum Vertex_feature {
30  VERTEX_FEATURE_FORCE_32_BIT = 0xffffffffU
31 };
32 
33 mi_static_assert( sizeof( Vertex_feature) == sizeof( Uint32));
34 
55  public base::Interface_declare<0x6a65666a,0x849d,0x4081,0xaa,0x32,0xb3,0xa1,0xeb,0xa0,0x6f,0xe2,
56  IPolygon_mesh>
57 {
58 public:
60 
61 
63  virtual Uint32 triangles_size() const = 0;
64 
71  virtual Uint32 triangles_capacity() const = 0;
72 
79  virtual void reserve_triangles( Uint32 n) = 0;
80 
82  virtual Uint32 quads_size() const = 0;
83 
90  virtual Uint32 quads_capacity() const = 0;
91 
98  virtual void reserve_quads( Uint32 n) = 0;
99 
101 
103 
123  virtual Sint32 set_crease_value( Polygon_handle_struct p, Uint32 index, Float32 value) = 0;
124 
132  virtual Float32 get_crease_value( Polygon_handle_struct p, Uint32 index) const = 0;
133 
149  virtual Sint32 set_crease_values( Polygon_handle_struct p, const Float32* values) = 0;
150 
158  virtual const Float32* get_crease_values( Polygon_handle_struct p) const = 0;
159 
172  virtual IArray* get_inconsistent_crease_values() const = 0;
173 
175 
177 
186  virtual Sint32 set_vertex_feature( Uint32 index, Vertex_feature feature) = 0;
187 
192  virtual Vertex_feature get_vertex_feature( Uint32 index) const = 0;
193 
195 };
196  // end group mi_neuray_leaf_nodes
198 
199 } // namespace mi
200 
201 #endif // MI_NEURAYLIB_ISUBDIVISION_SURFACE_H