Regina Calculation Engine
Public Member Functions | Protected Member Functions | List of all members
regina::detail::FaceOrientability< allowsNonorientable > Class Template Reference

Helper class that stores whether the link of a face is orientable. More...

#include <triangulation/detail/face.h>

Public Member Functions

bool isLinkOrientable () const
 Determines if the link of this face is orientable. More...
 

Protected Member Functions

 FaceOrientability ()
 Initialises the link of this face as orientable. More...
 
void markLinkNonorientable ()
 Marks the link of this face as non-orientable. More...
 

Detailed Description

template<bool allowsNonorientable>
class regina::detail::FaceOrientability< allowsNonorientable >

Helper class that stores whether the link of a face is orientable.

Every class Face<dim, subdim> inherits from this class.

This class takes a template argument to allow optimisation for those dimensions in which face links are always orientable. In particular, if allowsNonorientable is false, then this class assumes that all faces will always have orientable links, and it optimises away all the implementation details to leave no overhead at all.

Template Parameters
allowsNonorientabletrue when this is used for dimensions in which face links could potentially be non-orientable, or false when this is used for dimensions in which face links are always orientable.

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

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