1 /*=========================================================================
2 
3   Program:   Visualization Toolkit
4   Module:    vtkCellType.h
5 
6   Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
7   All rights reserved.
8   See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
9 
10      This software is distributed WITHOUT ANY WARRANTY; without even
11      the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
12      PURPOSE.  See the above copyright notice for more information.
13 
14 =========================================================================*/
15 /**
16  * @class   vtkCellType
17  * @brief   define types of cells
18  *
19  * vtkCellType defines the allowable cell types in the visualization
20  * library (vtk). In vtk, datasets consist of collections of cells.
21  * Different datasets consist of different cell types. The cells may be
22  * explicitly represented (as in vtkPolyData), or may be implicit to the
23  * data type (as in vtkStructuredPoints).
24  */
25 
26 #ifndef vtkCellType_h
27 #define vtkCellType_h
28 
29 // To add a new cell type, define a new integer type flag here, then
30 // create a subclass of vtkCell to implement the proper behavior. You
31 // may have to modify the following methods: vtkDataSet (and subclasses)
32 // GetCell() and vtkGenericCell::SetCellType(). Also, to do the job right,
33 // you'll also have to modify some filters (vtkGeometryFilter...) and
34 // regression tests (example scripts) to reflect the new cell addition.
35 // Also, make sure to update vtkCellTypesStrings in vtkCellTypes.cxx
36 // and the vtkCellTypes::IsLinear method in vtkCellTypes.h.
37 
38 // .SECTION Caveats
39 // An unstructured grid stores the types of its cells as a
40 // unsigned char array. Therefore, the maximum encoding number for a cell type
41 // is 255.
42 
43 typedef enum
44 {
45   // Linear cells
46   VTK_EMPTY_CELL = 0,
47   VTK_VERTEX = 1,
48   VTK_POLY_VERTEX = 2,
49   VTK_LINE = 3,
50   VTK_POLY_LINE = 4,
51   VTK_TRIANGLE = 5,
52   VTK_TRIANGLE_STRIP = 6,
53   VTK_POLYGON = 7,
54   VTK_PIXEL = 8,
55   VTK_QUAD = 9,
56   VTK_TETRA = 10,
57   VTK_VOXEL = 11,
58   VTK_HEXAHEDRON = 12,
59   VTK_WEDGE = 13,
60   VTK_PYRAMID = 14,
61   VTK_PENTAGONAL_PRISM = 15,
62   VTK_HEXAGONAL_PRISM = 16,
63 
64   // Quadratic, isoparametric cells
65   VTK_QUADRATIC_EDGE = 21,
66   VTK_QUADRATIC_TRIANGLE = 22,
67   VTK_QUADRATIC_QUAD = 23,
68   VTK_QUADRATIC_POLYGON = 36,
69   VTK_QUADRATIC_TETRA = 24,
70   VTK_QUADRATIC_HEXAHEDRON = 25,
71   VTK_QUADRATIC_WEDGE = 26,
72   VTK_QUADRATIC_PYRAMID = 27,
73   VTK_BIQUADRATIC_QUAD = 28,
74   VTK_TRIQUADRATIC_HEXAHEDRON = 29,
75   VTK_TRIQUADRATIC_PYRAMID = 37,
76   VTK_QUADRATIC_LINEAR_QUAD = 30,
77   VTK_QUADRATIC_LINEAR_WEDGE = 31,
78   VTK_BIQUADRATIC_QUADRATIC_WEDGE = 32,
79   VTK_BIQUADRATIC_QUADRATIC_HEXAHEDRON = 33,
80   VTK_BIQUADRATIC_TRIANGLE = 34,
81 
82   // Cubic, isoparametric cell
83   VTK_CUBIC_LINE = 35,
84 
85   // Special class of cells formed by convex group of points
86   VTK_CONVEX_POINT_SET = 41,
87 
88   // Polyhedron cell (consisting of polygonal faces)
89   VTK_POLYHEDRON = 42,
90 
91   // Higher order cells in parametric form
92   VTK_PARAMETRIC_CURVE = 51,
93   VTK_PARAMETRIC_SURFACE = 52,
94   VTK_PARAMETRIC_TRI_SURFACE = 53,
95   VTK_PARAMETRIC_QUAD_SURFACE = 54,
96   VTK_PARAMETRIC_TETRA_REGION = 55,
97   VTK_PARAMETRIC_HEX_REGION = 56,
98 
99   // Higher order cells
100   VTK_HIGHER_ORDER_EDGE = 60,
101   VTK_HIGHER_ORDER_TRIANGLE = 61,
102   VTK_HIGHER_ORDER_QUAD = 62,
103   VTK_HIGHER_ORDER_POLYGON = 63,
104   VTK_HIGHER_ORDER_TETRAHEDRON = 64,
105   VTK_HIGHER_ORDER_WEDGE = 65,
106   VTK_HIGHER_ORDER_PYRAMID = 66,
107   VTK_HIGHER_ORDER_HEXAHEDRON = 67,
108 
109   // Arbitrary order Lagrange elements (formulated separated from generic higher order cells)
110   VTK_LAGRANGE_CURVE = 68,
111   VTK_LAGRANGE_TRIANGLE = 69,
112   VTK_LAGRANGE_QUADRILATERAL = 70,
113   VTK_LAGRANGE_TETRAHEDRON = 71,
114   VTK_LAGRANGE_HEXAHEDRON = 72,
115   VTK_LAGRANGE_WEDGE = 73,
116   VTK_LAGRANGE_PYRAMID = 74,
117 
118   // Arbitrary order Bezier elements (formulated separated from generic higher order cells)
119   VTK_BEZIER_CURVE = 75,
120   VTK_BEZIER_TRIANGLE = 76,
121   VTK_BEZIER_QUADRILATERAL = 77,
122   VTK_BEZIER_TETRAHEDRON = 78,
123   VTK_BEZIER_HEXAHEDRON = 79,
124   VTK_BEZIER_WEDGE = 80,
125   VTK_BEZIER_PYRAMID = 81,
126 
127   VTK_NUMBER_OF_CELL_TYPES
128 } VTKCellType;
129 
130 #endif
131 // VTK-HeaderTest-Exclude: vtkCellType.h
132