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