regina::FaceNumbering< dim, subdim > Class Template Reference
Triangulations

Specifies how subdim-faces are numbered within a dim-dimensional simplex. More...

`#include <triangulation/facenumbering.h>`

Inheritance diagram for regina::FaceNumbering< dim, subdim >:

## Static Public Member Functions

static Perm< dim+1 > | ordering (unsigned face)
| Given a subdim-face number within a dim-dimensional simplex, returns the corresponding canonical ordering of the simplex vertices. More...
static unsigned | 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 bool | containsVertex (unsigned face, unsigned 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 | nFaces
| The total number of subdim-dimensional faces in each dim-dimensional simplex. More...

## Detailed Description

### template<int dim, int subdim>
class regina::FaceNumbering< dim, subdim >

Specifies how subdim-faces are numbered within a dim-dimensional simplex.

Regina uses the following general scheme for numbering faces:

- For low-dimensional faces (subdim < dim / 2), faces are numbered in lexicographical order according to their vertices. For example, in a 3-dimensional triangulation, edges 0,...,5 contain vertices 01, 02, 03, 12, 13, 23 respectively.
- For high-dimensional faces (subdim ≥ dim / 2), faces are numbered in reverse lexicographical order according to their vertices. For example, in a 3-dimensional triangulation, triangles 0,...,3 contain vertices 123, 023, 013, 012 respectively.
- As a consequence, unless subdim = (dim-1)/2, we always have subdim-face number i opposite (dim-1-subdim)-face number i. For the special "halfway case" subdim = (dim-1)/2, where each subdim-face is opposite another subdim-face, we always have subdim-face number i opposite subdim-face number (nFaces-1-i).

Every class Face<dim, subdim> inherits from this class, which means you can access these routines as Face<dim, subdim>::ordering(), Face<dim, subdim>::faceNumber(), and so on.

An advantage of referring to FaceNumbering<dim, subdim> directly (as opposed to Face<dim, subdim>) is that its header is lightweight: it does not pull in the large and complex headers required by Face<dim, subdim>.

This class is specialised (and optimised) in Regina's standard dimensions.

Python:\n This class is not available in Python. However, all of
  its routines can be accessed through Face<dim, subdim> (which in Python becomes Face dim_subdim, or one of the type aliases such as Vertex3, Edge2 and so on).

Template Parameters

  dim | the dimension of the simplex whose faces we are numbering. This must be between 1 and 15 inclusive.
  subdim | the dimension of the faces that we are numbering. This must be between 0 and dim-1 inclusive.

## Member Data Documentation

## nFaces

constexpr int regina::detail::FaceNumberingImpl< dim, subdim, lex >::nFaces

static constexpr inherited

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

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

- triangulation/facenumbering.h

Copyright © 1999-2016, 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).