regina::NNormalSurfaceList::SurfaceInserter Struct Reference

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

`#include <surfaces/nnormalsurfacelist.h>`

Inheritance diagram for regina::NNormalSurfaceList::SurfaceInserter:

## Public Member Functions

| SurfaceInserter (NNormalSurfaceList &newList, NTriangulation *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= (NNormalSurface *surface)
| Appends a normal surface to the end of the appropriate surface list. More...
SurfaceInserter & | operator= (NNormalSurfaceVector *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

NNormalSurfaceList * | list
| The list into which surfaces will be inserted. More...
NTriangulation * | owner
| The triangulation in which the surfaces to be inserted are contained. More...

## Detailed Description

An output iterator used to insert surfaces into an NNormalSurfaceList.

Objects of type `NNormalSurface*` and `NNormalSurfaceVector*` can be assigned to this iterator. In the latter case, a surrounding NNormalSurface 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).

## Constructor & Destructor Documentation

regina::NNormalSurfaceList::SurfaceInserter::SurfaceInserter | ( | NNormalSurfaceList & | newList,
|  | NTriangulation * | newOwner
| ) |  |

inline

Creates a new output iterator.

The member variables of this iterator will be initialised according to the parameters passed to this constructor.

Parameters

  newList | the list into which surfaces will be inserted.
  newOwner | the triangulation in which the surfaces to be inserted are contained.

regina::NNormalSurfaceList::SurfaceInserter::SurfaceInserter | ( | const SurfaceInserter & | cloneMe | ) |

inline

Creates a new output iterator that is a clone of the given iterator.

Parameters

  cloneMe | the output iterator to clone.

## Member Function Documentation

NNormalSurfaceList::SurfaceInserter & regina::NNormalSurfaceList::SurfaceInserter::operator* | ( |  | ) |

inline

Returns a reference to this output iterator.

Returns
  this output iterator.

NNormalSurfaceList::SurfaceInserter & regina::NNormalSurfaceList::SurfaceInserter::operator++ | ( |  | ) |

inline

Returns a reference to this output iterator.

Returns
  this output iterator.

NNormalSurfaceList::SurfaceInserter & regina::NNormalSurfaceList::SurfaceInserter::operator++ | ( | int |  | ) |

inline

Returns a reference to this output iterator.

Returns
  this output iterator.

NNormalSurfaceList::SurfaceInserter & regina::NNormalSurfaceList::SurfaceInserter::operator= | ( | const SurfaceInserter & | cloneMe | ) |

inline

Sets this iterator to be a clone of the given output iterator.

Parameters

  cloneMe | the output iterator to clone.

Returns
  this output iterator.

NNormalSurfaceList::SurfaceInserter & regina::NNormalSurfaceList::SurfaceInserter::operator= | ( | NNormalSurface * | surface | ) |

inline

Appends a normal surface to the end of the appropriate surface list.

The given surface will be deallocated with the other surfaces in this list when the list is eventually destroyed.

Parameters

  surface | the normal surface to insert.

Returns
  this output iterator.

NNormalSurfaceList::SurfaceInserter & regina::NNormalSurfaceList::SurfaceInserter::operator= | ( | NNormalSurfaceVector * | vector | ) |

inline

Appends the normal surface corresponding to the given vector to the end of the appropriate surface list.

The given vector will be owned by the newly created normal surface and will be deallocated with the other surfaces in this list when the list is eventually destroyed.

Warning
  The behaviour of this routine has changed! As of Regina 4.6, this routine no longer checks for multiple octagonal discs. See the SurfaceInserter class notes for details.

Parameters

  vector | the vector of the normal surface to insert.

Returns
  this output iterator.

## Member Data Documentation

NNormalSurfaceList* regina::NNormalSurfaceList::SurfaceInserter::list

The list into which surfaces will be inserted.

NTriangulation* regina::NNormalSurfaceList::SurfaceInserter::owner

The triangulation in which the surfaces to be inserted are contained.

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

- surfaces/nnormalsurfacelist.h

Copyright © 1999-2013, 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@debian.org).