TTK
Loading...
Searching...
No Matches
Variables
MarchingTetrahedraLookupTables.inl File Reference

Go to the source code of this file.

Variables

constexpr int tetLookupWall [28][15]
 Lookuptables used in MarchingTetrahedra algorithm.
 
constexpr int tetLookupWallLabel [27][10]
 
constexpr size_t tetLookupNumWallTriangles [28]
 
constexpr size_t tetLookupNumTrianglesDetailedBoundary [28]
 
constexpr size_t tetLookupNumTrianglesBoundaries [28]
 
constexpr bool tetLookupIsMultiLabel [28]
 
constexpr bool tetLookupIs2Label [28]
 
constexpr bool tetLookupIs3Label [28]
 
constexpr int tetLookupFastCase [28]
 
constexpr bool tetLookupFast [28]
 
constexpr int tetLookupFastTri [4][3] = {{0, 1, 2}, {0, 1, 3}, {0, 2, 3}, {1, 2, 3}}
 
constexpr int tetLookupSplitBasins2Label [22][8]
 
constexpr int tetLookupSplitBasisns3Label [27][11]
 
constexpr bool triangleLookupIsMultiLabel [7]
 
constexpr bool triangleLookupIs2Label [7]
 
constexpr size_t triangleNumberLookup [7]
 
constexpr size_t triangleNumberLookupBoundary [7]
 
constexpr size_t triangleNumberLookupBoundaryDetailed [7]
 
constexpr int triangleLookupEdgeVerts [7][4]
 

Variable Documentation

◆ tetLookupFast

constexpr bool tetLookupFast[28]
constexpr
Initial value:
= {
false,
false,
false,
true,
false,
false,
false,
false,
true,
false,
false,
false,
false,
false,
false,
false,
true,
false,
false,
false,
false,
true,
false,
false,
false,
false,
false,
false
}

Provides if a tetrahedron has three vertices with the same label and one vertex with another label.

Definition at line 327 of file MarchingTetrahedraLookupTables.inl.

◆ tetLookupFastCase

constexpr int tetLookupFastCase[28]
constexpr
Initial value:
= {
-1,
-1,
-1,
0,
-1,
-1,
-1,
-1,
1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
2,
-1,
-1,
-1,
-1,
3,
-1,
-1,
-1,
-1,
-1,
-1
}

Lookup table providing the vertex index(local to the tetrahedron) to specify the label for the triangles using the basin separating boundaries mode.

Definition at line 293 of file MarchingTetrahedraLookupTables.inl.

◆ tetLookupFastTri

constexpr int tetLookupFastTri[4][3] = {{0, 1, 2}, {0, 1, 3}, {0, 2, 3}, {1, 2, 3}}
constexpr

Provide the vertex indices, local to the tetrahedron, for the cases in the lookup table tetLookupFastCase. These three vertices have the same label.

Definition at line 362 of file MarchingTetrahedraLookupTables.inl.

◆ tetLookupIs2Label

constexpr bool tetLookupIs2Label[28]
constexpr
Initial value:
= {
false,
false,
false,
true,
false,
false,
false,
false,
true,
false,
true,
false,
false,
false,
false,
false,
true,
true,
false,
false,
true,
true,
false,
false,
false,
false,
false,
false
}

Lookup table providing if a lookupIndex is a two label case.

Definition at line 226 of file MarchingTetrahedraLookupTables.inl.

◆ tetLookupIs3Label

constexpr bool tetLookupIs3Label[28]
constexpr
Initial value:
= {
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
true,
false,
false,
false,
false,
false,
false,
false,
true,
false,
false,
false,
true,
true,
true,
true,
false
}

Lookup table providing if a lookupIndex is a three label case.

Definition at line 258 of file MarchingTetrahedraLookupTables.inl.

◆ tetLookupIsMultiLabel

constexpr bool tetLookupIsMultiLabel[28]
constexpr
Initial value:
= {
false,
false,
false,
true,
false,
false,
false,
false,
true,
false,
true,
true,
false,
false,
false,
false,
true,
true,
false,
true,
true,
true,
false,
true,
true,
true,
true,
true
}

Lookup table providing, if a lookupIndex is a multi label case.

Definition at line 194 of file MarchingTetrahedraLookupTables.inl.

◆ tetLookupNumTrianglesBoundaries

constexpr size_t tetLookupNumTrianglesBoundaries[28]
constexpr
Initial value:
= {
0,
0,
0,
1,
0,
0,
0,
0,
1,
0,
0,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
1,
0,
0,
0,
0,
0,
0
}

Lookup table providing the number of triangles created by tetLookupWall in each case, using the basin separating boundary mode that only draws a triangle if the tetrahedron has three vertices of the same label and one vertex of another label.

Definition at line 162 of file MarchingTetrahedraLookupTables.inl.

◆ tetLookupNumTrianglesDetailedBoundary

constexpr size_t tetLookupNumTrianglesDetailedBoundary[28]
constexpr
Initial value:
= {
0,
0,
0,
2,
0,
0,
0,
0,
2,
0,
4,
10,
0,
0,
0,
0,
2,
4,
0,
10,
4,
2,
0,
10,
10,
10,
10,
24
}

Lookup table providing the number of triangles created by tetLookupWall in each case, using the "detailed boundaries" Mode that splits every triangle into two slightly shifted triangles.

Definition at line 125 of file MarchingTetrahedraLookupTables.inl.

◆ tetLookupNumWallTriangles

constexpr size_t tetLookupNumWallTriangles[28]
constexpr
Initial value:
= {
0,
0,
0,
1,
0,
0,
0,
0,
1,
0,
2,
5,
0,
0,
0,
0,
1,
2,
0,
5,
2,
1,
0,
5,
5,
5,
5,
12
}

Lookup table providing number of triangles created by tetLookupWall.

Definition at line 89 of file MarchingTetrahedraLookupTables.inl.

◆ tetLookupSplitBasins2Label

constexpr int tetLookupSplitBasins2Label[22][8]
constexpr
Initial value:
= {
{-1, -1, -1, -1, -1, -1, -1, -1},
{-1, -1, -1, -1, -1, -1, -1, -1},
{-1, -1, -1, -1, -1, -1, -1, -1},
{0, 3, 1, 3, 2, 3, -1, -1},
{-1, -1, -1, -1, -1, -1, -1, -1},
{-1, -1, -1, -1, -1, -1, -1, -1},
{-1, -1, -1, -1, -1, -1, -1, -1},
{-1, -1, -1, -1, -1, -1, -1, -1},
{0, 2, 1, 2, 3, 2, -1, -1},
{-1, -1, -1, -1, -1, -1, -1, -1},
{0, 2, 1, 3, 0, 3, 1, 2},
{-1, -1, -1, -1, -1, -1, -1, -1},
{-1, -1, -1, -1, -1, -1, -1, -1},
{-1, -1, -1, -1, -1, -1, -1, -1},
{-1, -1, -1, -1, -1, -1, -1, -1},
{-1, -1, -1, -1, -1, -1, -1, -1},
{0, 1, 2, 1, 3, 1, -1, -1},
{0, 1, 2, 3, 0, 3, 2, 1},
{-1, -1, -1, -1, -1, -1, -1, -1},
{-1, -1, -1, -1, -1, -1, -1, -1},
{0, 1, 3, 2, 0, 2, 3, 1},
{1, 0, 2, 0, 3, 0, -1, -1},
}

Vertex indices for interpolation in the detailed basin boundaries mode where two labels are present at one tetrahedron. Every pair of two vertex indices is used to interpolate along their connecting edge. Therefore, three edges are given by six vertex indices when three vertices have the same label, as one triangle is enough to separate the remaining vertex. In the case of two vertices with the same label, two triangles are needed, so 4 edge centers are given by the 8 vertex indices.

Definition at line 374 of file MarchingTetrahedraLookupTables.inl.

◆ tetLookupSplitBasisns3Label

constexpr int tetLookupSplitBasisns3Label[27][11]
constexpr
Initial value:
= {
{-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1},
{-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1},
{-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1},
{-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1},
{-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1},
{-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1},
{-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1},
{-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1},
{-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1},
{-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1},
{-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1},
{0, 1, 2, 2, 1, 3, 4, 3, 2, 3, 5},
{-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1},
{-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1},
{-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1},
{-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1},
{-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1},
{-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1},
{-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1},
{0, 2, 0, 1, 2, 5, 3, 3, 3, 1, 4},
{-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1},
{-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1},
{-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1},
{1, 0, 4, 1, 2, 1, 5, 2, 0, 3, 2},
{0, 0, 1, 0, 3, 4, 5, 3, 1, 2, 3},
{1, 0, 3, 0, 3, 2, 5, 2, 0, 2, 1},
{2, 1, 3, 0, 3, 2, 4, 1, 0, 1, 0},
}

Vertex indices for interpolation in the detailed basin boundaries mode where three labels are present at one tetrahedron. In the case of three labels, two vertices have the same label. For those two vertices the vertex index local to the tetrahedron, the two edges connected to the vertices that are needed for the triangulation, and the triangle index are given at positions 0-3 and 4-7 respectively. Position 8 and 9 give the vertex index of the two remaining vertices and Position 10 gives the edge index conntecting them.

Definition at line 408 of file MarchingTetrahedraLookupTables.inl.

◆ tetLookupWallLabel

constexpr int tetLookupWallLabel[27][10]
constexpr
Initial value:
= {
{-1, -1, -1, -1, -1, -1, -1, -1, -1, -1},
{-1, -1, -1, -1, -1, -1, -1, -1, -1, -1},
{-1, -1, -1, -1, -1, -1, -1, -1, -1, -1},
{0, 3, -1, -1, -1, -1, -1, -1, -1, -1},
{-1, -1, -1, -1, -1, -1, -1, -1, -1, -1},
{-1, -1, -1, -1, -1, -1, -1, -1, -1, -1},
{-1, -1, -1, -1, -1, -1, -1, -1, -1, -1},
{-1, -1, -1, -1, -1, -1, -1, -1, -1, -1},
{0, 2, -1, -1, -1, -1, -1, -1, -1, -1},
{-1, -1, -1, -1, -1, -1, -1, -1, -1, -1},
{0, 2, 0, 2, -1, -1, -1, -1, -1, -1},
{2, 3, 0, 2, 0, 2, 0, 3, 0, 3},
{-1, -1, -1, -1, -1, -1, -1, -1, -1, -1},
{-1, -1, -1, -1, -1, -1, -1, -1, -1, -1},
{-1, -1, -1, -1, -1, -1, -1, -1, -1, -1},
{-1, -1, -1, -1, -1, -1, -1, -1, -1, -1},
{0, 1, -1, -1, -1, -1, -1, -1, -1, -1},
{0, 1, 0, 1, -1, -1, -1, -1, -1, -1},
{-1, -1, -1, -1, -1, -1, -1, -1, -1, -1},
{1, 3, 0, 1, 0, 1, 0, 3, 0, 3},
{0, 1, 0, 1, -1, -1, -1, -1, -1, -1},
{0, 1, -1, -1, -1, -1, -1, -1, -1, -1},
{-1, -1, -1, -1, -1, -1, -1, -1, -1, -1},
{0, 3, 0, 1, 0, 1, 1, 3, 1, 3},
{1, 2, 0, 1, 0, 1, 0, 2, 0, 2},
{0, 2, 0, 1, 0, 1, 1, 2, 1, 2},
{0, 1, 0, 2, 0, 2, 1, 2, 1, 2}
}

Lookup table providing the labels of two vertex indexes that are separated by the triangle created by tetLookupWall. Every two entries describe the two labels of both vertices that are separated by each triangle, allowing to calculate a hash for each triangle.

Definition at line 56 of file MarchingTetrahedraLookupTables.inl.

◆ triangleLookupEdgeVerts

constexpr int triangleLookupEdgeVerts[7][4]
constexpr
Initial value:
= {
{-1, -1, -1, -1},
{-1, -1, -1, -1},
{0, 2, 1, 2},
{-1, -1, -1, -1},
{0, 1, 2, 1},
{1, 0, 2, 0},
}

Two label triangle cases. Every 2 entries represent the edge between the vertex indices, such that two edges are given for each case.

Definition at line 497 of file MarchingTetrahedraLookupTables.inl.

◆ triangleLookupIs2Label

constexpr bool triangleLookupIs2Label[7]
constexpr
Initial value:
= {
false,
false,
true,
false,
true,
true,
false
}

Two label triangle cases.

Definition at line 450 of file MarchingTetrahedraLookupTables.inl.

◆ triangleLookupIsMultiLabel

constexpr bool triangleLookupIsMultiLabel[7]
constexpr
Initial value:
= {
false,
false,
true,
false,
true,
true,
true
}

Multi label triangles cases.

Definition at line 439 of file MarchingTetrahedraLookupTables.inl.

◆ triangleNumberLookup

constexpr size_t triangleNumberLookup[7]
constexpr
Initial value:
= {
0,
0,
1,
0,
1,
1,
3
}

Number of triangles in basin separators mode

Definition at line 461 of file MarchingTetrahedraLookupTables.inl.

◆ triangleNumberLookupBoundary

constexpr size_t triangleNumberLookupBoundary[7]
constexpr
Initial value:
= {
0,
0,
1,
0,
1,
1,
0
}

Number of triangles in basin boundaries mode

Definition at line 472 of file MarchingTetrahedraLookupTables.inl.

◆ triangleNumberLookupBoundaryDetailed

constexpr size_t triangleNumberLookupBoundaryDetailed[7]
constexpr
Initial value:
= {
0,
0,
2,
0,
2,
2,
6
}

Number of triangles in detailed basin boundaries mode

Definition at line 483 of file MarchingTetrahedraLookupTables.inl.