HDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
GT_PrimitiveTypes.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: GT_PrimitiveTypes.h ( GT Library, C++)
7  *
8  * COMMENTS:
9  */
10 
11 #ifndef __GT_PrimitiveTypes__
12 #define __GT_PrimitiveTypes__
13 
14 #include "GT_API.h"
15 
16 typedef enum {
18 
19  // A collection of primitives
20  GT_PRIM_COLLECT, // GT_PrimCollect
21 
22  // A detail collection (GU_Detail)
24 
25  // Simple GEO primitives
28  GT_GEO_PACKED, // Packed prim
29  GT_GEO_PRIMLIST, // List of GEO primitives
30 
31  // Meshes of simple GEO primitives
33 
34  // Simple primitives
35  GT_PRIM_CURVE, // Single open polygon or cubic curve
36  GT_PRIM_POLYGON, // Single closed polygon
37  GT_PRIM_PATCH, // Single linear or cubic patch primitive
38  GT_PRIM_NUPATCH, // A NURBS Patch
39 
40  // Meshes of simple primitives
41  GT_PRIM_CURVE_MESH, // Soup of linear or cubic curves
42  GT_PRIM_POLYGON_MESH, // Polygon soup
43  GT_PRIM_PATCH_MESH, // Mesh of patch primitives
44  GT_PRIM_SUBDIVISION_MESH, // Polygon soup as subdivision surface
45  GT_PRIM_SUBDIVISION_CURVES, // Curves as subdivision curves
46  GT_PRIM_TRIANGLE_STRIP, // Triangle strip (specialized patch mesh)
47  GT_PRIM_TRIANGLE_FAN, // Triangle fan (specialized polygon mesh)
48 
49  // NURBS primitives
50  GT_PRIM_NURBS_CURVE, // Single NURBS curve
51  GT_PRIM_NURBS_SURFACE, // NURBS surface
52 
53  // Meshes of NURBS primitives
54  GT_PRIM_NURBS_CURVE_MESH, // Soup of NURBS curves
55 
56  // Quadric primitives
57  GT_PRIM_CIRCLE, // Primitive circle
58  GT_PRIM_SPHERE, // Primitive sphere
59  GT_PRIM_TUBE, // Primitive tube
60  GT_PRIM_HYPERBOLOID, // Primitive hyperboloid
61 
62  // Point-based primitives
63  GT_PRIM_POINT_MESH, // Point set
64  GT_PRIM_PARTICLE, // Particle primitive
65 
66  // Metaballs
67  GT_PRIM_METAEXPR, // Metaball expression
68 
69  // Volume primitives
70  GT_PRIM_VOXEL_VOLUME, // Simple volume primitive
71  GT_PRIM_VDB_VOLUME, // VDB volume primitive
72  GT_PRIM_TET_MESH, // Tetrahedrons
73 
74  // Bezier patch (not a Bezier surface)
76 
77  // Quadric meshes (collections of quadrics)
82 
83  GT_PRIM_CAPTURE_REGIONS, // Capture region pills
84 
85  GT_PRIM_INSTANCE, // Instance primitive
86  GT_PRIM_FRAGMENTS, // Fragments primitive
87  GT_PRIM_AGENTS, // Collection of Agents
88  GT_PRIM_AGENT_SHAPE, // Instances of an agent shape
89 
90  GT_PRIM_ALEMBIC_ARCHIVE, // Collection of shapes and instances
91  GT_PRIM_ALEMBIC_SHAPE, // Single alembic geometry shape
92  GT_PRIM_ALEMBIC_SHAPE_MESH, // Multiple alembic shapes combined into one
93  GT_PRIM_ALEMBIC_INSTANCE, // Instanced alembic geometry shape
94 
95  GT_PRIM_PACKED_DISK, // Packed disk primitive (single or sequence)
96 
99 
100 static inline bool GTvalidPrimitive(int id)
101  {
102  return id > GT_PRIM_UNDEFINED &&
103  id < GT_MAX_PRIM_TYPES;
104  }
105 
106 extern GT_API const char *GTprimitiveType(int type);
107 extern GT_API GT_PrimitiveType GTprimitiveType(const char *name);
108 
109 #endif
#define GT_API
Definition: GT_API.h:11
GLuint const GLchar * name
Definition: glcorearb.h:785
GT_PrimitiveType
GLint GLint GLsizei GLint GLenum GLenum type
Definition: glcorearb.h:107
GT_API const char * GTprimitiveType(int type)