VTK  9.7.1
vtkMarchingCellsContourCases.h
Go to the documentation of this file.
1 // SPDX-FileCopyrightText: Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
2 // SPDX-License-Identifier: BSD-3-Clause
3 
4 #ifndef vtkMarchingCellsContourCases_h
5 #define vtkMarchingCellsContourCases_h
6 
7 #include "vtkCommonDataModelModule.h"
8 
9 #include <cstdint> // For uint8_t
10 
55 VTK_ABI_NAMESPACE_BEGIN
56 class VTKCOMMONDATAMODEL_EXPORT vtkMarchingCellsContourCases
57 {
58 public:
60 
66  using LineCase = int[3];
67  static const LineCase* GetLineCases();
68  static const LineCase& GetLineCase(uint8_t caseIndex);
70 
72 
78  using TriangleCase = int[3];
79  static const TriangleCase* GetTriangleCases();
80  static const TriangleCase& GetTriangleCase(uint8_t caseIndex);
82 
84 
91  using PixelCase = int[5];
92  static const PixelCase* GetPixelCases();
93  static const PixelCase& GetPixelCase(uint8_t caseIndex);
95 
97 
102  using QuadCase = int[5];
103  static const QuadCase* GetQuadCases();
104  static const QuadCase& GetQuadCase(uint8_t caseIndex);
106 
108 
113  using TetraCase = int[7];
114  static const TetraCase* GetTetraCases();
115  static const TetraCase& GetTetraCase(uint8_t caseIndex);
117 
119 
127  using VoxelCase = int[16];
128  static const VoxelCase* GetVoxelCases();
129  static const VoxelCase& GetVoxelCase(uint8_t caseIndex);
131 
133 
138  using HexahedronCase = int[16];
139  static const HexahedronCase* GetHexahedronCases();
140  static const HexahedronCase& GetHexahedronCase(uint8_t caseIndex);
142 
144 
149  using WedgeCase = int[13];
150  static const WedgeCase* GetWedgeCases();
151  static const WedgeCase& GetWedgeCase(uint8_t caseIndex);
153 
155 
160  using PyramidCase = int[13];
161  static const PyramidCase* GetPyramidCases();
162  static const PyramidCase& GetPyramidCase(uint8_t caseIndex);
164 
172  using CellCase = const int*;
173  static CellCase GetCellCase(int cellType, uint8_t caseIndex);
174 
176 
183  using TetraCaseWithPolygons = int[6];
184  static const TetraCaseWithPolygons* GetTetraCasesWithPolygons();
185  static const TetraCaseWithPolygons& GetTetraCaseWithPolygons(uint8_t caseIndex);
187 
189 
197  using VoxelCaseWithPolygons = int[17];
198  static const VoxelCaseWithPolygons* GetVoxelCasesWithPolygons();
199  static const VoxelCaseWithPolygons& GetVoxelCaseWithPolygons(uint8_t caseIndex);
201 
203 
208  using HexahedronCaseWithPolygons = int[17];
209  static const HexahedronCaseWithPolygons* GetHexahedronCasesWithPolygons();
210  static const HexahedronCaseWithPolygons& GetHexahedronCaseWithPolygons(uint8_t caseIndex);
212 
214 
221  using WedgeCaseWithPolygons = int[10];
222  static const WedgeCaseWithPolygons* GetWedgeCasesWithPolygons();
223  static const WedgeCaseWithPolygons& GetWedgeCaseWithPolygons(uint8_t caseIndex);
225 
227 
234  using PyramidCaseWithPolygons = int[9];
235  static const PyramidCaseWithPolygons* GetPyramidCasesWithPolygons();
236  static const PyramidCaseWithPolygons& GetPyramidCaseWithPolygons(uint8_t caseIndex);
238 
262  using CellCaseWithPolygons = const int*;
263  static CellCaseWithPolygons GetCellCaseWithPolygons(int cellType, uint8_t caseIndex);
264 
272  using Edge = int[2];
273  using EdgeArray = const Edge*;
274  static EdgeArray GetCellEdges(int cellType);
275 };
276 VTK_ABI_NAMESPACE_END
277 
278 #endif // vtkMarchingCellsContourCases_h
int[16] VoxelCase
Case tables for a voxel cell (VTK_VOXEL).
int[7] TetraCase
Case tables for a tetrahedron cell (VTK_TETRA).
int[5] PixelCase
Case tables for a pixel cell (VTK_PIXEL).
int[9] PyramidCaseWithPolygons
Polygon case tables for a pyramid cell (VTK_PYRAMID).
int[3] TriangleCase
Case tables for a triangle cell (VTK_TRIANGLE).
int[5] QuadCase
Case tables for a quad cell (VTK_QUAD).
Lookup tables for marching cells contouring.
int[17] HexahedronCaseWithPolygons
Polygon case tables for a hexahedron cell (VTK_HEXAHEDRON).
int[2] Edge
Returns the edge definitions for the given cell type as an array of point index pairs, where each pair defines one edge of the cell.
int[3] LineCase
Case tables for a line cell (VTK_LINE).
int[13] PyramidCase
Case tables for a pyramid cell (VTK_PYRAMID).
int[13] WedgeCase
Case tables for a wedge cell (VTK_WEDGE).
int[10] WedgeCaseWithPolygons
Polygon case tables for a wedge cell (VTK_WEDGE).
int[17] VoxelCaseWithPolygons
Polygon case tables for a voxel cell (VTK_VOXEL).
int[6] TetraCaseWithPolygons
Polygon case tables for a tetrahedron cell (VTK_TETRA).
const int * CellCaseWithPolygons
Generic interface to retrieve a contour case entry that generates polygons or line segments for any s...
const int * CellCase
Generic interface to retrieve a contour case entry for any supported cell type.
int[16] HexahedronCase
Case tables for a hexahedron cell (VTK_HEXAHEDRON).