HDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
GEO_PrimTypeCompat.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_PrimTypeCompat.h (GA Library, C++)
7  *
8  * COMMENTS:
9  */
10 
11 #ifndef __GEO_PrimTypeCompat_h__
12 #define __GEO_PrimTypeCompat_h__
13 
14 /// @file GEO_PrimTypeCompat.h
15 /// @brief Contains transitional objects to provide some backward compatibility
16 /// for code that references old GEO primitive ids. New code should explicitly
17 /// use either GA_Primitive::getTypeId() or GA_Primitive::getFamilyMask(), as
18 /// appropriate. These transitional objects will be removed in the next major
19 /// release.
20 
21 #include "GEO_API.h"
22 #include <GA/GA_PrimCompat.h>
23 
24 /// The compatibility objects are wrapped in a name space to stress the change
25 /// between the obsolete type bitmasks (e.g. GEOPRIMPOLY) and the new type ids
26 /// (e.g. GEO_PRIMPOLY).
27 namespace GEO_PrimTypeCompat
28 {
30 
31  GEO_API extern const TypeMask GEOPRIMNONE;
32  //
33  // Standard face types
34  GEO_API extern const TypeMask GEOFACE;
35  GEO_API extern const TypeMask GEOPRIMPOLY;
36  GEO_API extern const TypeMask GEOPRIMNURBCURVE;
37  GEO_API extern const TypeMask GEOPRIMBEZCURVE;
38 
39  GEO_API extern const TypeMask GEOCURVE;
40 
41  //
42  // Standard hull types
43  GEO_API extern const TypeMask GEOHULL;
44  GEO_API extern const TypeMask GEOPRIMMESH;
45  GEO_API extern const TypeMask GEOPRIMNURBSURF;
46  GEO_API extern const TypeMask GEOPRIMBEZSURF;
47 
48  GEO_API extern const TypeMask GEOTPSURF;
49  GEO_API extern const TypeMask GEOSPLINE;
50 
51  //
52  // Standard paste types
53  GEO_API extern const TypeMask GEOPRIMPASTESURF;
54 
55  //
56  // Standard quadric types
57  GEO_API extern const TypeMask GEOPRIMQUADRIC;
58  GEO_API extern const TypeMask GEOPRIMCIRCLE;
59  GEO_API extern const TypeMask GEOPRIMSPHERE;
60  GEO_API extern const TypeMask GEOPRIMTUBE;
61  GEO_API extern const TypeMask GEOPRIMPLANE;
62 
63  //
64  // Standard particle types
65  GEO_API extern const TypeMask GEOPRIMPART;
66 
67  //
68  // Standard meta primitive types
69  GEO_API extern const TypeMask GEOPRIMMETA;
70  GEO_API extern const TypeMask GEOPRIMMETABALL;
71  GEO_API extern const TypeMask GEOPRIMMETASQUAD;
72  GEO_API extern const TypeMask GEOPRIMMETALINE;
73  GEO_API extern const TypeMask GEOPRIMMETABEZ;
74  GEO_API extern const TypeMask GEOPRIMMETATRI;
75 
76  //
77  // Miscelleneous primitive types.
78  // These guys must be detected via operator==, not operator&.
79  GEO_API extern const TypeMask GEOPRIMOTHER;
80  GEO_API extern const TypeMask GEOPRIMTRIFAN;
81  GEO_API extern const TypeMask GEOPRIMTRISTRIP;
82  GEO_API extern const TypeMask GEOPRIMTRIBEZIER;
83  GEO_API extern const TypeMask GEOPRIMVOLUME;
84  GEO_API extern const TypeMask GEOPRIMTETRAHEDRON;
85  GEO_API extern const TypeMask GEOPRIMPOLYSOUP;
86  GEO_API extern const TypeMask GEOPRIMVDB;
87  GEO_API extern const TypeMask GEOPRIMHEXAHEDRON;
88  GEO_API extern const TypeMask GEOPRIMCHANNEL;
89  GEO_API extern const TypeMask GEOPRIMCAMERA;
90  GEO_API extern const TypeMask GEOALLFUTURE;
91 
92  GEO_API extern const TypeMask GEOPRIMALL;
93 
94  //
95  // Classifies as U or UV primitives:
96  GEO_API extern const TypeMask GEOPRIMU;
97  GEO_API extern const TypeMask GEOPRIMUV;
98 
99  //
100  // Type strings
101  GEO_API extern const char *GEOPRIMPOLYN;
102  GEO_API extern const char *GEOPRIMNURBCURVEN;
103  GEO_API extern const char *GEOPRIMBEZCURVEN;
104  GEO_API extern const char *GEOPRIMMESHN;
105  GEO_API extern const char *GEOPRIMNURBSURFN;
106  GEO_API extern const char *GEOPRIMBEZSURFN;
107  GEO_API extern const char *GEOPRIMPASTESURFN;
108  GEO_API extern const char *GEOPRIMCIRCLEN;
109  GEO_API extern const char *GEOPRIMSPHEREN;
110  GEO_API extern const char *GEOPRIMTUBEN;
111  GEO_API extern const char *GEOPRIMPLANEN;
112  GEO_API extern const char *GEOPRIMPARTN;
113  GEO_API extern const char *GEOPRIMMETABALLN;
114  GEO_API extern const char *GEOPRIMMETASQUADN;
115  GEO_API extern const char *GEOPRIMMETALINEN;
116  GEO_API extern const char *GEOPRIMMETABEZN;
117  GEO_API extern const char *GEOPRIMMETATRIN;
118  GEO_API extern const char *GEOPRIMTRIFANN;
119  GEO_API extern const char *GEOPRIMTRISTRIPN;
120  GEO_API extern const char *GEOPRIMTRIBEZIERN;
121  GEO_API extern const char *GEOPRIMVOLUMEN;
122 
123  /// Map from the compatibility type mask to the enum values defined in
124  /// GEO_PrimType.h. If the mask doesn't match one of the enummerated types
125  /// exactly, GEO_PRIMNONE will be returned. In other words @code
126  /// getPrimType(GEO_PrimTypeCompat::GEOPRIMPOLY) == GEO_PRIMPOLY
127  /// getPrimType(GEO_PrimTypeCompat::GEOFACE) == GEO_PRIMNONE
128  /// @endcode
129  GEO_API extern int getPrimType(const TypeMask &mask);
130 
131  //
132  // File type identifiers
133  enum
134  {
135  GEOPRIMPOLY_FILEID = 0x00000001, // Polygon
136  GEOPRIMNURBCURVE_FILEID = 0x00000002, // NURB Curve
137  GEOPRIMBEZCURVE_FILEID = 0x00000004, // Rational Bezier Curve
138  GEOPRIMMESH_FILEID = 0x00000010, // Linear patch
139  GEOPRIMNURBSURF_FILEID = 0x00000020, // NURB Surface
140  GEOPRIMBEZSURF_FILEID = 0x00000040, // Rational Bezier Surface
141  GEOPRIMPASTESURF_FILEID = 0x00000f00, // TPsurf Paste Hierarchy
142  GEOPRIMCIRCLE_FILEID = 0x00001000, // Ellipse/Circle
143  GEOPRIMSPHERE_FILEID = 0x00002000, // Ellipsoid/Sphere
144  GEOPRIMTUBE_FILEID = 0x00004000, // Cylinder
145  GEOPRIMPART_FILEID = 0x00008000, // Particle
146  GEOPRIMPLANE_FILEID = 0x00010000, // Plane
147  GEOPRIMMETABALL_FILEID = 0x00100000, // Meta-ball
148  GEOPRIMMETASQUAD_FILEID = 0x00200000, // Super quadric
149  GEOPRIMMETALINE_FILEID = 0x00300000, // Meta-line
150  GEOPRIMMETABEZ_FILEID = 0x00400000, // Meta-bezier
151  GEOPRIMMETATRI_FILEID = 0x00500000, // Meta-triangle
152  GEOPRIMTRIFAN_FILEID = 0x10000000, // Triangle fans
153  GEOPRIMTRISTRIP_FILEID = 0x20000000, // Generalized triangle strips
154  GEOPRIMTRIBEZIER_FILEID = 0x30000000, // Triangular beziers
155  GEOPRIMVOLUME_FILEID = 0x40000000, // Voxel volume
156  };
157 
158  /// Map from an old file bitfield to the compatibility type mask.
159  GEO_API extern TypeMask convertMaskFromFile(unsigned mask);
160 
161  /// Inverse of convertMaskFromFile()
162  GEO_API extern unsigned convertToFileFromMask(TypeMask mask);
163 }
164 
165 #endif
GEO_API const char * GEOPRIMMETALINEN
GEO_API const TypeMask GEOPRIMMESH
GEO_API const TypeMask GEOPRIMPASTESURF
GEO_API const TypeMask GEOPRIMPLANE
GEO_API const TypeMask GEOPRIMTRISTRIP
GEO_API const char * GEOPRIMSPHEREN
GEO_API const TypeMask GEOTPSURF
GEO_API const char * GEOPRIMMESHN
GEO_API const TypeMask GEOPRIMCIRCLE
GEO_API const TypeMask GEOPRIMNONE
GEO_API const char * GEOPRIMBEZCURVEN
GEO_API const char * GEOPRIMNURBCURVEN
GEO_API const char * GEOPRIMVOLUMEN
GEO_API const TypeMask GEOPRIMVOLUME
GEO_API const char * GEOPRIMMETATRIN
GEO_API const TypeMask GEOPRIMCAMERA
GEO_API const TypeMask GEOPRIMNURBCURVE
GEO_API unsigned convertToFileFromMask(TypeMask mask)
Inverse of convertMaskFromFile()
GEO_API const TypeMask GEOPRIMMETABEZ
GEO_API const TypeMask GEOALLFUTURE
GEO_API const char * GEOPRIMPASTESURFN
GEO_API const char * GEOPRIMPARTN
GEO_API const TypeMask GEOPRIMOTHER
GEO_API const char * GEOPRIMMETABALLN
GEO_API const TypeMask GEOPRIMPOLYSOUP
GEO_API const TypeMask GEOPRIMMETA
GEO_API const TypeMask GEOPRIMNURBSURF
GEO_API const TypeMask GEOPRIMHEXAHEDRON
GEO_API const char * GEOPRIMBEZSURFN
GEO_API const char * GEOPRIMTRIFANN
GEO_API const TypeMask GEOPRIMMETASQUAD
GEO_API const TypeMask GEOCURVE
GEO_API const TypeMask GEOPRIMTRIBEZIER
GEO_API const TypeMask GEOPRIMTRIFAN
GEO_API const char * GEOPRIMPOLYN
GEO_API const TypeMask GEOPRIMMETALINE
GEO_API const char * GEOPRIMTUBEN
GEO_API const TypeMask GEOPRIMTETRAHEDRON
GLint GLuint mask
Definition: glcorearb.h:124
#define GEO_API
Definition: GEO_API.h:14
GEO_API const char * GEOPRIMMETASQUADN
GEO_API const TypeMask GEOPRIMTUBE
GEO_API const TypeMask GEOPRIMVDB
GEO_API const char * GEOPRIMCIRCLEN
GEO_API const TypeMask GEOHULL
GEO_API const TypeMask GEOPRIMMETATRI
GEO_API const char * GEOPRIMPLANEN
GEO_API const TypeMask GEOPRIMU
GEO_API const TypeMask GEOPRIMMETABALL
GEO_API const TypeMask GEOPRIMBEZCURVE
GEO_API const TypeMask GEOSPLINE
GEO_API const TypeMask GEOPRIMALL
GEO_API const TypeMask GEOPRIMPART
GEO_API const TypeMask GEOFACE
GEO_API const TypeMask GEOPRIMCHANNEL
GEO_API const TypeMask GEOPRIMBEZSURF
GEO_API const char * GEOPRIMTRISTRIPN
GEO_API const TypeMask GEOPRIMUV
GEO_API const char * GEOPRIMNURBSURFN
GEO_API const char * GEOPRIMMETABEZN
GEO_API const TypeMask GEOPRIMQUADRIC
GEO_API const TypeMask GEOPRIMPOLY
GEO_API TypeMask convertMaskFromFile(unsigned mask)
Map from an old file bitfield to the compatibility type mask.
GEO_API int getPrimType(const TypeMask &mask)
GEO_API const TypeMask GEOPRIMSPHERE
GEO_API const char * GEOPRIMTRIBEZIERN