Regina Calculation Engine
Public Member Functions | List of all members
regina::FacePair Class Reference

Represents a pair of tetrahedron face numbers. More...

#include <triangulation/facepair.h>

Public Member Functions

 FacePair ()
 Creates a new face pair (0,1). More...
 
 FacePair (int newFirst, int newSecond)
 Creates a new face pair from the two given face numbers. More...
 
 FacePair (const FacePair &cloneMe)=default
 Creates a new face pair that is a clone of the given pair. More...
 
unsigned lower () const
 Returns the smaller of the two face numbers in this pair. More...
 
unsigned upper () const
 Returns the larger of the two face numbers in this pair. More...
 
bool isBeforeStart () const
 Determines if this face pair represents a before-the-start value. More...
 
bool isPastEnd () const
 Determines if this face pair represents a past-the-end value. More...
 
FacePair complement () const
 Returns the complement of this face pair. More...
 
FacePairoperator= (const FacePair &cloneMe)=default
 Sets this face pair to be a copy of the given pair. More...
 
bool operator== (const FacePair &other) const
 Determines if this and the given face pair are equal. More...
 
bool operator!= (const FacePair &other) const
 Determines if this and the given face pair are not equal. More...
 
bool operator< (const FacePair &other) const
 Determines if this is less than the given face pair. More...
 
bool operator> (const FacePair &other) const
 Determines if this is greater than the given face pair. More...
 
bool operator<= (const FacePair &other) const
 Determines if this is less than or equal to the given face pair. More...
 
bool operator>= (const FacePair &other) const
 Determines if this is greater than or equal to the given face pair. More...
 
FacePairoperator++ ()
 Increments this face pair. More...
 
FacePair operator++ (int)
 Increments this face pair. More...
 
FacePairoperator-- ()
 Decrements this face pair. More...
 
FacePair operator-- (int)
 Decrements this face pair. More...
 

Detailed Description

Represents a pair of tetrahedron face numbers.

Note that we are not storing triangle numbers in a triangulation skeleton, but merely face numbers 0, 1, 2 and 3 in a single tetrahedron. Thus there are only six possible face pairs; this class merely makes working with such pairs more convenient.

As well as providing the six possible face pairs, there is also a before-the-start and a past-the-end value; this (combined with the increment operator) allows for iteration through face pairs.

When iterating through face pairs, the ordering will be the lexicographical ordering (0,1), (0,2), (0,3), (1,2), (1,3), (2,3).

The before-the-start and past-the-end values are internally represented as (0,0) and (3,3) respectively.


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

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