|
VTK
9.6.20260402
|
Lookup tables for marching cells contouring. More...
#include <vtkMarchingCellsContourCases.h>
Public Types | |
| using | CellCase = const int* |
| Generic interface to retrieve a contour case entry for any supported cell type. | |
| using | Edge = int[2] |
| 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. | |
| using | EdgeArray = const Edge* |
Static Public Member Functions | |
| static CellCase | GetCellCase (int cellType, uint8_t caseIndex) |
| static EdgeArray | GetCellEdges (int cellType) |
| using | LineCase = int[2] |
| Case tables for a line cell (VTK_LINE). | |
| static const LineCase * | GetLineCases () |
| Case tables for a line cell (VTK_LINE). | |
| static const LineCase & | GetLineCase (uint8_t caseIndex) |
| Case tables for a line cell (VTK_LINE). | |
| using | TriangleCase = int[3] |
| Case tables for a triangle cell (VTK_TRIANGLE). | |
| static const TriangleCase * | GetTriangleCases () |
| Case tables for a triangle cell (VTK_TRIANGLE). | |
| static const TriangleCase & | GetTriangleCase (uint8_t caseIndex) |
| Case tables for a triangle cell (VTK_TRIANGLE). | |
| using | PixelCase = int[5] |
| Case tables for a pixel cell (VTK_PIXEL). | |
| static const PixelCase * | GetPixelCases () |
| Case tables for a pixel cell (VTK_PIXEL). | |
| static const PixelCase & | GetPixelCase (uint8_t caseIndex) |
| Case tables for a pixel cell (VTK_PIXEL). | |
| using | QuadCase = int[5] |
| Case tables for a quad cell (VTK_QUAD). | |
| static const QuadCase * | GetQuadCases () |
| Case tables for a quad cell (VTK_QUAD). | |
| static const QuadCase & | GetQuadCase (uint8_t caseIndex) |
| Case tables for a quad cell (VTK_QUAD). | |
| using | TetraCase = int[7] |
| Case tables for a tetrahedron cell (VTK_TETRA). | |
| static const TetraCase * | GetTetraCases () |
| Case tables for a tetrahedron cell (VTK_TETRA). | |
| static const TetraCase & | GetTetraCase (uint8_t caseIndex) |
| Case tables for a tetrahedron cell (VTK_TETRA). | |
| using | VoxelCase = int[16] |
| Case tables for a voxel cell (VTK_VOXEL). | |
| static const VoxelCase * | GetVoxelCases () |
| Case tables for a voxel cell (VTK_VOXEL). | |
| static const VoxelCase & | GetVoxelCase (uint8_t caseIndex) |
| Case tables for a voxel cell (VTK_VOXEL). | |
| using | HexahedronCase = int[16] |
| Case tables for a hexahedron cell (VTK_HEXAHEDRON). | |
| static const HexahedronCase * | GetHexahedronCases () |
| Case tables for a hexahedron cell (VTK_HEXAHEDRON). | |
| static const HexahedronCase & | GetHexahedronCase (uint8_t caseIndex) |
| Case tables for a hexahedron cell (VTK_HEXAHEDRON). | |
| using | HexahedronWithPolygonCase = int[17] |
| Case tables for a hexahedron cell with polygon output (VTK_HEXAHEDRON). | |
| static const HexahedronWithPolygonCase * | GetHexahedronWithPolygonCases () |
| Case tables for a hexahedron cell with polygon output (VTK_HEXAHEDRON). | |
| static const HexahedronWithPolygonCase & | GetHexahedronWithPolygonCase (uint8_t caseIndex) |
| Case tables for a hexahedron cell with polygon output (VTK_HEXAHEDRON). | |
| using | WedgeCase = int[13] |
| Case tables for a wedge cell (VTK_WEDGE). | |
| static const WedgeCase * | GetWedgeCases () |
| Case tables for a wedge cell (VTK_WEDGE). | |
| static const WedgeCase & | GetWedgeCase (uint8_t caseIndex) |
| Case tables for a wedge cell (VTK_WEDGE). | |
| using | PyramidCase = int[13] |
| Case tables for a pyramid cell (VTK_PYRAMID). | |
| static const PyramidCase * | GetPyramidCases () |
| Case tables for a pyramid cell (VTK_PYRAMID). | |
| static const PyramidCase & | GetPyramidCase (uint8_t caseIndex) |
| Case tables for a pyramid cell (VTK_PYRAMID). | |
Lookup tables for marching cells contouring.
vtkMarchingCellsContourCases provides the edge intersection tables used by marching cells algorithms to generate contours (isosurfaces/isolines) for each supported cell type.
For each cell type, a case index is computed by treating each vertex as a bit in a bitmask: bit i is set if vertex i's scalar value is greater than or equal to the contour value. This case index is then used to look up a list of edges that the contour surface intersects.
Each case entry is an array of edge indices terminated by -1. For surface cells (3D), edges are grouped into triangles (3 edges per triangle). For line cells (2D), edges are grouped into line segments (2 edges per segment). Edge indices refer to the cell type's own edge numbering convention, as returned by GetCellEdges().
The number of cases per cell type is 2^N where N is the number of vertices:
Definition at line 42 of file vtkMarchingCellsContourCases.h.
| using vtkMarchingCellsContourCases::LineCase = int[2] |
Case tables for a line cell (VTK_LINE).
Each case entry is an array of 2 ints: one edge index followed by -1. There are 4 cases (2^2 vertices).
Definition at line 51 of file vtkMarchingCellsContourCases.h.
| using vtkMarchingCellsContourCases::TriangleCase = int[3] |
Case tables for a triangle cell (VTK_TRIANGLE).
Each case entry is an array of 3 ints: edge indices grouped into line segments, terminated by -1. There are 8 cases (2^3 vertices).
Definition at line 62 of file vtkMarchingCellsContourCases.h.
| using vtkMarchingCellsContourCases::PixelCase = int[5] |
Case tables for a pixel cell (VTK_PIXEL).
Each case entry is an array of 5 ints: edge indices grouped into line segments, terminated by -1. There are 16 cases (2^4 vertices). Note: vtkPixel uses a different point ordering than vtkQuad (points 2 and 3 are swapped), so this table differs from QuadCases.
Definition at line 75 of file vtkMarchingCellsContourCases.h.
| using vtkMarchingCellsContourCases::QuadCase = int[5] |
Case tables for a quad cell (VTK_QUAD).
Each case entry is an array of 5 ints: edge indices grouped into line segments, terminated by -1. There are 16 cases (2^4 vertices).
Definition at line 86 of file vtkMarchingCellsContourCases.h.
| using vtkMarchingCellsContourCases::TetraCase = int[7] |
Case tables for a tetrahedron cell (VTK_TETRA).
Each case entry is an array of 7 ints: edge indices grouped into triangles (3 edges per triangle), terminated by -1. There are 16 cases (2^4 vertices).
Definition at line 97 of file vtkMarchingCellsContourCases.h.
| using vtkMarchingCellsContourCases::VoxelCase = int[16] |
Case tables for a voxel cell (VTK_VOXEL).
Each case entry is an array of 16 ints: edge indices grouped into triangles (3 edges per triangle), terminated by -1. There are 256 cases (2^8 vertices). Note: vtkVoxel uses a different point ordering than vtkHexahedron (points 2 and 3 are swapped, as are points 6 and 7), so this table differs from HexahedronCases.
Definition at line 111 of file vtkMarchingCellsContourCases.h.
| using vtkMarchingCellsContourCases::HexahedronCase = int[16] |
Case tables for a hexahedron cell (VTK_HEXAHEDRON).
Each case entry is an array of 16 ints: edge indices grouped into triangles (3 edges per triangle), terminated by -1. There are 256 cases (2^8 vertices).
Definition at line 122 of file vtkMarchingCellsContourCases.h.
| using vtkMarchingCellsContourCases::HexahedronWithPolygonCase = int[17] |
Case tables for a hexahedron cell with polygon output (VTK_HEXAHEDRON).
Each case entry is an array of 17 ints: edge indices grouped into polygons, terminated by -1. There are 256 cases (2^8 vertices).
Definition at line 133 of file vtkMarchingCellsContourCases.h.
| using vtkMarchingCellsContourCases::WedgeCase = int[13] |
Case tables for a wedge cell (VTK_WEDGE).
Each case entry is an array of 13 ints: edge indices grouped into triangles (3 edges per triangle), terminated by -1. There are 64 cases (2^6 vertices).
Definition at line 144 of file vtkMarchingCellsContourCases.h.
| using vtkMarchingCellsContourCases::PyramidCase = int[13] |
Case tables for a pyramid cell (VTK_PYRAMID).
Each case entry is an array of 13 ints: edge indices grouped into triangles (3 edges per triangle), terminated by -1. There are 32 cases (2^5 vertices).
Definition at line 155 of file vtkMarchingCellsContourCases.h.
| using vtkMarchingCellsContourCases::CellCase = const int* |
Generic interface to retrieve a contour case entry for any supported cell type.
| cellType | A VTK cell type constant (e.g. VTK_HEXAHEDRON, VTK_WEDGE). |
| caseIndex | The case index computed from the vertex inside/outside bitmask. |
Definition at line 167 of file vtkMarchingCellsContourCases.h.
| using vtkMarchingCellsContourCases::Edge = int[2] |
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.
The array is terminated by a { -1, -1 } sentinel. Returns nullptr if the cell type is not supported.
Definition at line 176 of file vtkMarchingCellsContourCases.h.
| using vtkMarchingCellsContourCases::EdgeArray = const Edge* |
Definition at line 177 of file vtkMarchingCellsContourCases.h.
|
static |
Case tables for a line cell (VTK_LINE).
Each case entry is an array of 2 ints: one edge index followed by -1. There are 4 cases (2^2 vertices).
|
static |
Case tables for a line cell (VTK_LINE).
Each case entry is an array of 2 ints: one edge index followed by -1. There are 4 cases (2^2 vertices).
|
static |
Case tables for a triangle cell (VTK_TRIANGLE).
Each case entry is an array of 3 ints: edge indices grouped into line segments, terminated by -1. There are 8 cases (2^3 vertices).
|
static |
Case tables for a triangle cell (VTK_TRIANGLE).
Each case entry is an array of 3 ints: edge indices grouped into line segments, terminated by -1. There are 8 cases (2^3 vertices).
|
static |
Case tables for a pixel cell (VTK_PIXEL).
Each case entry is an array of 5 ints: edge indices grouped into line segments, terminated by -1. There are 16 cases (2^4 vertices). Note: vtkPixel uses a different point ordering than vtkQuad (points 2 and 3 are swapped), so this table differs from QuadCases.
|
static |
Case tables for a pixel cell (VTK_PIXEL).
Each case entry is an array of 5 ints: edge indices grouped into line segments, terminated by -1. There are 16 cases (2^4 vertices). Note: vtkPixel uses a different point ordering than vtkQuad (points 2 and 3 are swapped), so this table differs from QuadCases.
|
static |
Case tables for a quad cell (VTK_QUAD).
Each case entry is an array of 5 ints: edge indices grouped into line segments, terminated by -1. There are 16 cases (2^4 vertices).
|
static |
Case tables for a quad cell (VTK_QUAD).
Each case entry is an array of 5 ints: edge indices grouped into line segments, terminated by -1. There are 16 cases (2^4 vertices).
|
static |
Case tables for a tetrahedron cell (VTK_TETRA).
Each case entry is an array of 7 ints: edge indices grouped into triangles (3 edges per triangle), terminated by -1. There are 16 cases (2^4 vertices).
|
static |
Case tables for a tetrahedron cell (VTK_TETRA).
Each case entry is an array of 7 ints: edge indices grouped into triangles (3 edges per triangle), terminated by -1. There are 16 cases (2^4 vertices).
|
static |
Case tables for a voxel cell (VTK_VOXEL).
Each case entry is an array of 16 ints: edge indices grouped into triangles (3 edges per triangle), terminated by -1. There are 256 cases (2^8 vertices). Note: vtkVoxel uses a different point ordering than vtkHexahedron (points 2 and 3 are swapped, as are points 6 and 7), so this table differs from HexahedronCases.
|
static |
Case tables for a voxel cell (VTK_VOXEL).
Each case entry is an array of 16 ints: edge indices grouped into triangles (3 edges per triangle), terminated by -1. There are 256 cases (2^8 vertices). Note: vtkVoxel uses a different point ordering than vtkHexahedron (points 2 and 3 are swapped, as are points 6 and 7), so this table differs from HexahedronCases.
|
static |
Case tables for a hexahedron cell (VTK_HEXAHEDRON).
Each case entry is an array of 16 ints: edge indices grouped into triangles (3 edges per triangle), terminated by -1. There are 256 cases (2^8 vertices).
|
static |
Case tables for a hexahedron cell (VTK_HEXAHEDRON).
Each case entry is an array of 16 ints: edge indices grouped into triangles (3 edges per triangle), terminated by -1. There are 256 cases (2^8 vertices).
|
static |
Case tables for a hexahedron cell with polygon output (VTK_HEXAHEDRON).
Each case entry is an array of 17 ints: edge indices grouped into polygons, terminated by -1. There are 256 cases (2^8 vertices).
|
static |
Case tables for a hexahedron cell with polygon output (VTK_HEXAHEDRON).
Each case entry is an array of 17 ints: edge indices grouped into polygons, terminated by -1. There are 256 cases (2^8 vertices).
|
static |
Case tables for a wedge cell (VTK_WEDGE).
Each case entry is an array of 13 ints: edge indices grouped into triangles (3 edges per triangle), terminated by -1. There are 64 cases (2^6 vertices).
|
static |
Case tables for a wedge cell (VTK_WEDGE).
Each case entry is an array of 13 ints: edge indices grouped into triangles (3 edges per triangle), terminated by -1. There are 64 cases (2^6 vertices).
|
static |
Case tables for a pyramid cell (VTK_PYRAMID).
Each case entry is an array of 13 ints: edge indices grouped into triangles (3 edges per triangle), terminated by -1. There are 32 cases (2^5 vertices).
|
static |
Case tables for a pyramid cell (VTK_PYRAMID).
Each case entry is an array of 13 ints: edge indices grouped into triangles (3 edges per triangle), terminated by -1. There are 32 cases (2^5 vertices).
|
static |
|
static |