HDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
GEO_IORibExt.h
Go to the documentation of this file.
1 /*
2  * PROPRIETARY INFORMATION. This software is proprietary to
3  * Side Effects Software Inc., and is not to be reproduced,
4  * transmitted, or disclosed in any way without written permission.
5  *
6  * NAME: GEO_IORibExt.h ( GEO Library, C++)
7  *
8  * COMMENTS: Encapsulated definition of RIB extensions supported by the GEO
9  * library.
10  */
11 
12 #ifndef __GEO_IORibExt__
13 #define __GEO_IORibExt__
14 
15 #include "GEO_API.h"
16 #include <string.h>
17 
18 class UT_OptionFile;
19 
20 enum
21 {
22  // Features supported
23  GEO_RIB_RIPOINT = 0, // Supports RiPoint
24  GEO_RIB_RICURVE, // Supports RiCurve
25  GEO_RIB_RINUCURVE, // Supports RiNuCurve
26  GEO_RIB_RISUBDIVIDE, // Supports Sub-Division surfaces
27  GEO_RIB_RIBLOBBY, // Supports Blobbys
28 
29  // Bug fixes in specific cases
30  GEO_RIB_PRMAN36_PRIMCLR, // Prior to prman3.7, they processed
31  // primitive attributes backwards on
32  // PointsGeneralPolygon
33  GEO_RIB_PRMAN38_UCURVE, // Prior to prman3.9 uniform attributes on
34  // curves were set for the whole curve set.
35  // After 3.9 the uniform attribute is per-curve
36 
37  // prman 10
38  GEO_RIB_FACEVARYING, // Face varying extension
39 
41 };
42 
43 
45 {
46 public:
47  GEO_IORibExt();
48  ~GEO_IORibExt();
49 
50  void setRenderer(const char *renderer, int major, int minor);
51 
52  int hasExtension(int ext)
53  {
54  if (ext < 0 || ext >= GEO_RIB_MAX_EXTENSIONS)
55  return 0;
56  return myExtensions[ext];
57  }
58 
59 private:
60  void initExtensions(const UT_OptionFile &options);
61  char myExtensions[GEO_RIB_MAX_EXTENSIONS];
62 };
63 
64 #endif
65 
int hasExtension(int ext)
Definition: GEO_IORibExt.h:52
#define GEO_API
Definition: GEO_API.h:14