// SPDX-FileCopyrightText: Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen // SPDX-License-Identifier: BSD-3-Clause /** * @class vtkCellType * @brief define types of cells * * vtkCellType defines the allowable cell types in the visualization * library (vtk). In vtk, datasets consist of collections of cells. * Different datasets consist of different cell types. The cells may be * explicitly represented (as in vtkPolyData), or may be implicit to the * data type (as in vtkStructuredPoints). */ #ifndef vtkCellType_h #define vtkCellType_h #include "vtkABINamespace.h" // To add a new cell type, define a new integer type flag here, then // create a subclass of vtkCell to implement the proper behavior. You // may have to modify the following methods: vtkDataSet (and subclasses) // GetCell() and vtkGenericCell::SetCellType(). Also, to do the job right, // you'll also have to modify some filters (vtkGeometryFilter...) and // regression tests (example scripts) to reflect the new cell addition. // Also, make sure to update vtkCellTypesStrings in vtkCellTypes.cxx // and the vtkCellTypes::IsLinear method in vtkCellTypes.h. // .SECTION Caveats // An unstructured grid stores the types of its cells as a // unsigned char array. Therefore, the maximum encoding number for a cell type // is 255. VTK_ABI_NAMESPACE_BEGIN typedef enum { // Linear cells VTK_EMPTY_CELL = 0, VTK_VERTEX = 1, VTK_POLY_VERTEX = 2, VTK_LINE = 3, VTK_POLY_LINE = 4, VTK_TRIANGLE = 5, VTK_TRIANGLE_STRIP = 6, VTK_POLYGON = 7, VTK_PIXEL = 8, VTK_QUAD = 9, VTK_TETRA = 10, VTK_VOXEL = 11, VTK_HEXAHEDRON = 12, VTK_WEDGE = 13, VTK_PYRAMID = 14, VTK_PENTAGONAL_PRISM = 15, VTK_HEXAGONAL_PRISM = 16, // Quadratic, isoparametric cells VTK_QUADRATIC_EDGE = 21, VTK_QUADRATIC_TRIANGLE = 22, VTK_QUADRATIC_QUAD = 23, VTK_QUADRATIC_POLYGON = 36, VTK_QUADRATIC_TETRA = 24, VTK_QUADRATIC_HEXAHEDRON = 25, VTK_QUADRATIC_WEDGE = 26, VTK_QUADRATIC_PYRAMID = 27, VTK_BIQUADRATIC_QUAD = 28, VTK_TRIQUADRATIC_HEXAHEDRON = 29, VTK_TRIQUADRATIC_PYRAMID = 37, VTK_QUADRATIC_LINEAR_QUAD = 30, VTK_QUADRATIC_LINEAR_WEDGE = 31, VTK_BIQUADRATIC_QUADRATIC_WEDGE = 32, VTK_BIQUADRATIC_QUADRATIC_HEXAHEDRON = 33, VTK_BIQUADRATIC_TRIANGLE = 34, // Cubic, isoparametric cell VTK_CUBIC_LINE = 35, // Special class of cells formed by convex group of points VTK_CONVEX_POINT_SET = 41, // Polyhedron cell (consisting of polygonal faces) VTK_POLYHEDRON = 42, // Higher order cells in parametric form VTK_PARAMETRIC_CURVE = 51, VTK_PARAMETRIC_SURFACE = 52, VTK_PARAMETRIC_TRI_SURFACE = 53, VTK_PARAMETRIC_QUAD_SURFACE = 54, VTK_PARAMETRIC_TETRA_REGION = 55, VTK_PARAMETRIC_HEX_REGION = 56, // Higher order cells VTK_HIGHER_ORDER_EDGE = 60, VTK_HIGHER_ORDER_TRIANGLE = 61, VTK_HIGHER_ORDER_QUAD = 62, VTK_HIGHER_ORDER_POLYGON = 63, VTK_HIGHER_ORDER_TETRAHEDRON = 64, VTK_HIGHER_ORDER_WEDGE = 65, VTK_HIGHER_ORDER_PYRAMID = 66, VTK_HIGHER_ORDER_HEXAHEDRON = 67, // Arbitrary order Lagrange elements (formulated separated from generic higher order cells) VTK_LAGRANGE_CURVE = 68, VTK_LAGRANGE_TRIANGLE = 69, VTK_LAGRANGE_QUADRILATERAL = 70, VTK_LAGRANGE_TETRAHEDRON = 71, VTK_LAGRANGE_HEXAHEDRON = 72, VTK_LAGRANGE_WEDGE = 73, VTK_LAGRANGE_PYRAMID = 74, // Arbitrary order Bezier elements (formulated separated from generic higher order cells) VTK_BEZIER_CURVE = 75, VTK_BEZIER_TRIANGLE = 76, VTK_BEZIER_QUADRILATERAL = 77, VTK_BEZIER_TETRAHEDRON = 78, VTK_BEZIER_HEXAHEDRON = 79, VTK_BEZIER_WEDGE = 80, VTK_BEZIER_PYRAMID = 81, VTK_NUMBER_OF_CELL_TYPES } VTKCellType; VTK_ABI_NAMESPACE_END #endif // VTK-HeaderTest-Exclude: vtkCellType.h