Regina 7.3 Calculation Engine
Static Public Member Functions | Static Public Attributes | Static Protected Attributes | List of all members
regina::detail::FaceNumberingImpl< 3, 1, 1 > Class Reference
Inheritance diagram for regina::detail::FaceNumberingImpl< 3, 1, 1 >:
regina::detail::FaceNumberingAPI< 3, 1 >

Static Public Member Functions

static constexpr Perm< dim+1 > ordering (int face)
 Given a subdim-face number within a dim-dimensional simplex, returns the corresponding canonical ordering of the simplex vertices. More...
 
static constexpr int faceNumber (Perm< dim+1 > vertices)
 Identifies which subdim-face in a dim-dimensional simplex is represented by the first (subdim + 1) elements of the given permutation. More...
 
static constexpr bool containsVertex (int face, int vertex)
 Tests whether the given subdim-face of a dim-dimensional simplex contains the given vertex of the simplex. More...
 

Static Public Attributes

static constexpr int edgeNumber [4][4]
 A table that maps vertices of a tetrahedron to edge numbers. More...
 
static constexpr int edgeVertex [6][2]
 A table that maps edges of a tetrahedron to vertex numbers. More...
 
static constexpr int oppositeDim
 The dimension of the faces opposite these in a top-dimensional simplex of a dim-dimensional triangulation. More...
 
static constexpr bool lexNumbering
 true if faces are numbered in lexicographical order according to their vertices, or false if faces are numbered in reverse lexicographical order. More...
 
static constexpr int nFaces
 The total number of subdim-dimensional faces in each dim-dimensional simplex. More...
 

Static Protected Attributes

static constexpr int lexDim
 Whichever of subdim or oppositeDim uses lexicographical face numbering. More...
 

Member Function Documentation

◆ containsVertex()

static constexpr bool regina::detail::FaceNumberingAPI< dim, subdim >::containsVertex ( int  face,
int  vertex 
)
staticconstexprinherited

Tests whether the given subdim-face of a dim-dimensional simplex contains the given vertex of the simplex.

Parameters
facea subdim-face number in a dim-simplex; this must be between 0 and (dim+1 choose subdim+1)-1 inclusive.
vertexa vertex number in a dim-simplex; this must be between 0 and dim inclusive.
Returns
true if and only if the given subdim-face contains the given vertex.

◆ faceNumber()

static constexpr int regina::detail::FaceNumberingAPI< dim, subdim >::faceNumber ( Perm< dim+1 >  vertices)
staticconstexprinherited

Identifies which subdim-face in a dim-dimensional simplex is represented by the first (subdim + 1) elements of the given permutation.

In other words, this routine identifies which subdim-face number within a dim-dimensional simplex spans vertices vertices[0, ..., subdim].

Parameters
verticesa permutation whose first (subdim + 1) elements represent some vertex numbers in a dim-simplex.
Returns
the corresponding subdim-face number in the dim-simplex. This will be between 0 and (dim+1 choose subdim+1)-1 inclusive.

◆ ordering()

static constexpr Perm< dim+1 > regina::detail::FaceNumberingAPI< dim, subdim >::ordering ( int  face)
staticconstexprinherited

Given a subdim-face number within a dim-dimensional simplex, returns the corresponding canonical ordering of the simplex vertices.

If this canonical ordering is c, then c[0,...,subdim] will be the vertices of the given face in increasing numerical order. That is, c[0] < ... < c[subdim]. The remaining images c[(subdim + 1),...,dim] will be ordered arbitrarily.

Note that this is not the same permutation as returned by Simplex<dim>::faceMapping<subdim>():

  • ordering() is a static function, which returns the same permutation for the same face number, regardless of which dim-simplex we are looking at. The images of 0,...,subdim will always appear in increasing order, and the images of (subdim + 1),...,dim will be arbitrary.
  • faceMapping() examines the underlying face F of the triangulation and, across all appearances of F in different dim-simplices: (i) chooses the images of 0,...,subdim to map to the same respective vertices of F; and (ii) chooses the images of (subdim + 1),...,dim to maintain a "consistent orientation" constraint.
Parameters
faceidentifies which subdim-face of a dim-dimensional simplex to query. This must be between 0 and (dim+1 choose subdim+1)-1 inclusive.
Returns
the corresponding canonical ordering of the simplex vertices.

Member Data Documentation

◆ edgeNumber

constexpr int regina::detail::FaceNumberingImpl< 3, 1, 1 >::edgeNumber[4][4]
staticconstexpr
Initial value:
= {
{ -1, 0, 1, 2 }, { 0, -1, 3, 4 }, { 1, 3, -1, 5 }, { 2, 4, 5, -1 }
}

A table that maps vertices of a tetrahedron to edge numbers.

Edges in a tetrahedron are numbered 0,...,5. This table converts vertices to edge numbers; in particular, the edge joining vertices i and j of a tetrahedron is edge number edgeNumber[i][j]. Here i and j must be distinct, must be between 0 and 3 inclusive, and may be given in any order. The resulting edge number will be between 0 and 5 inclusive.

Note
Accessing edgeNumber[i][j] is equivalent to calling faceNumber(p), where p is a permutation that maps 0,1 to i,j in some order.

◆ edgeVertex

constexpr int regina::detail::FaceNumberingImpl< 3, 1, 1 >::edgeVertex[6][2]
staticconstexpr
Initial value:
= {
{ 0, 1 }, { 0, 2 }, { 0, 3 }, { 1, 2 }, { 1, 3 }, { 2, 3 }
}

A table that maps edges of a tetrahedron to vertex numbers.

Edges in a tetrahedron are numbered 0,...,5. This table converts edge numbers to vertices; in particular, edge i in a tetrahedron joins vertices edgeVertex[i][0] and edgeVertex[i][1]. Here i must be bewteen 0 and 5 inclusive; the resulting vertex numbers will be between 0 and 3 inclusive.

It is guaranteed that edgeVertex[i][0] will always be smaller than edgeVertex[i][1].

Note
Accessing edgeVertex[i][j] is equivalent to calling ordering(i)[j].

◆ lexDim

constexpr int regina::detail::FaceNumberingAPI< dim, subdim >::lexDim
staticconstexprprotectedinherited

Whichever of subdim or oppositeDim uses lexicographical face numbering.

◆ lexNumbering

constexpr bool regina::detail::FaceNumberingAPI< dim, subdim >::lexNumbering
staticconstexprinherited

true if faces are numbered in lexicographical order according to their vertices, or false if faces are numbered in reverse lexicographical order.

◆ nFaces

constexpr int regina::detail::FaceNumberingAPI< dim, subdim >::nFaces
staticconstexprinherited

The total number of subdim-dimensional faces in each dim-dimensional simplex.

◆ oppositeDim

constexpr int regina::detail::FaceNumberingAPI< dim, subdim >::oppositeDim
staticconstexprinherited

The dimension of the faces opposite these in a top-dimensional simplex of a dim-dimensional triangulation.


The documentation for this class was generated from the following file:

Copyright © 1999-2023, The Regina development team
This software is released under the GNU General Public License, with some additional permissions; see the source code for details.
For further information, or to submit a bug or other problem, please contact Ben Burton (bab@maths.uq.edu.au).