regina::NormalSurfaces::SurfaceInserter Struct Reference
Normal Surfaces

An output iterator used to insert surfaces into an NormalSurfaces. More...

`#include <surfaces/normalsurfaces.h>`

Inheritance diagram for regina::NormalSurfaces::SurfaceInserter:

## Public Member Functions

| SurfaceInserter (NormalSurfaces &newList, Triangulation< 3 > *newOwner)
| Creates a new output iterator. More...
| SurfaceInserter (const SurfaceInserter &cloneMe)
| Creates a new output iterator that is a clone of the given iterator. More...
SurfaceInserter & | operator= (const SurfaceInserter &cloneMe)
| Sets this iterator to be a clone of the given output iterator. More...
SurfaceInserter & | operator= (NormalSurface *surface)
| Appends a normal surface to the end of the appropriate surface list. More...
SurfaceInserter & | operator= (NormalSurfaceVector *vector)
| Appends the normal surface corresponding to the given vector to the end of the appropriate surface list. More...
SurfaceInserter & | operator* ()
| Returns a reference to this output iterator. More...
SurfaceInserter & | operator++ ()
| Returns a reference to this output iterator. More...
SurfaceInserter & | operator++ (int)
| Returns a reference to this output iterator. More...

## Public Attributes

NormalSurfaces * | list
| The list into which surfaces will be inserted. More...
Triangulation< 3 > * | owner
| The triangulation in which the surfaces to be inserted are contained. More...

## Detailed Description

An output iterator used to insert surfaces into an NormalSurfaces.

Objects of type `NormalSurface*` and `NormalSurfaceVector*` can be assigned to this iterator. In the latter case, a surrounding NormalSurface will be automatically created.

Warning
  The behaviour of this class has changed! As of Regina 4.6, this class happily inserts every surface or vector that it is given. In previous versions it checked almost normal surface vectors for multiple octagonal discs; this check has been removed to support conversions between quad-oct space and standard almost normal space, and to support the enumeration of all almost normal surfaces (as opposed to just vertex surfaces). Such checks are now left to the user interface (and indeed are now optional, at the user's discretion).

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

- surfaces/normalsurfaces.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).