regina::NSimpleSurfaceBundle Class Reference
[Standard 3-Manifolds]

Represents a particularly simple closed surface bundle over the circle. More...

#include <nsimplesurfacebundle.h>

Inheritance diagram for regina::NSimpleSurfaceBundle:

regina::NManifold regina::ShareableObject regina::boost::noncopyable List of all members.

Public Member Functions

 NSimpleSurfaceBundle (int newType)
 Creates a new surface bundle of the given type.
 NSimpleSurfaceBundle (const NSimpleSurfaceBundle &cloneMe)
 Creates a clone of the given surface bundle.
int getType () const
 Returns the specific type of surface bundle being represented.
bool operator== (const NSimpleSurfaceBundle &compare) const
 Determines whether this and the given surface bundle represent the same 3-manifold.
virtual NTriangulationconstruct () const
 Returns a triangulation of this 3-manifold, if such a construction has been implemented.
NAbelianGroupgetHomologyH1 () const
 Returns the first homology group of this 3-manifold, if such a routine has been implemented.
std::ostream & writeName (std::ostream &out) const
 Writes the common name of this 3-manifold as a human-readable string to the given output stream.
std::ostream & writeTeXName (std::ostream &out) const
 Writes the common name of this 3-manifold in TeX format to the given output stream.

Static Public Attributes

static const int S2xS1
 Represents the orientable 2-sphere bundle over the circle.
static const int S2xS1_TWISTED
 Represents the non-orientable twisted 2-sphere bundle over the circle.
static const int RP2xS1
 Represents the projective plane bundle over the circle.

Detailed Description

Represents a particularly simple closed surface bundle over the circle.

Only 2-sphere bundles, twisted 2-sphere bundles and projective plane bundles are considered.

All optional NManifold routines are implemented for this class.


Constructor & Destructor Documentation

regina::NSimpleSurfaceBundle::NSimpleSurfaceBundle ( int  newType  )  [inline]

Creates a new surface bundle of the given type.

Parameters:
newType the specific type of surface bundle to represent. This must be one of the 3-manifold constants defined in this class.

regina::NSimpleSurfaceBundle::NSimpleSurfaceBundle ( const NSimpleSurfaceBundle cloneMe  )  [inline]

Creates a clone of the given surface bundle.

Parameters:
cloneMe the surface bundle to clone.


Member Function Documentation

int regina::NSimpleSurfaceBundle::getType (  )  const [inline]

Returns the specific type of surface bundle being represented.

Returns:
the type of surface bundle. This will be one of the 3-manifold constants defined in this class.

bool regina::NSimpleSurfaceBundle::operator== ( const NSimpleSurfaceBundle compare  )  const [inline]

Determines whether this and the given surface bundle represent the same 3-manifold.

Parameters:
compare the surface bundle with which this will be compared.
Returns:
true if and only if this and the given surface bundle are homeomorphic.

virtual NTriangulation* regina::NSimpleSurfaceBundle::construct (  )  const [virtual]

Returns a triangulation of this 3-manifold, if such a construction has been implemented.

If no construction routine has yet been implemented for this 3-manifold (for instance, if this 3-manifold is a Seifert fibred space with sufficiently many exceptional fibres) then this routine will return 0.

The details of which 3-manifolds have construction routines can be found in the notes for the corresponding subclasses of NManifold. The default implemention of this routine returns 0.

Returns:
a triangulation of this 3-manifold, or 0 if the appropriate construction routine has not yet been implemented.

Reimplemented from regina::NManifold.

NAbelianGroup* regina::NSimpleSurfaceBundle::getHomologyH1 (  )  const [virtual]

Returns the first homology group of this 3-manifold, if such a routine has been implemented.

If the calculation of homology has not yet been implemented for this 3-manifold then this routine will return 0.

The details of which 3-manifolds have homology calculation routines can be found in the notes for the corresponding subclasses of NManifold. The default implemention of this routine returns 0.

The homology group will be newly allocated and must be destroyed by the caller of this routine.

Returns:
the first homology group of this 3-manifold, or 0 if the appropriate calculation routine has not yet been implemented.

Reimplemented from regina::NManifold.

std::ostream& regina::NSimpleSurfaceBundle::writeName ( std::ostream &  out  )  const [virtual]

Writes the common name of this 3-manifold as a human-readable string to the given output stream.

Python:
The parameter out does not exist; standard output will be used.
Parameters:
out the output stream to which to write.
Returns:
a reference to the given output stream.

Implements regina::NManifold.

std::ostream& regina::NSimpleSurfaceBundle::writeTeXName ( std::ostream &  out  )  const [virtual]

Writes the common name of this 3-manifold in TeX format to the given output stream.

No leading or trailing dollar signs will be included.

Warning:
The behaviour of this routine has changed as of Regina 4.3; in earlier versions, leading and trailing dollar signs were provided.
Python:
The parameter out does not exist; standard output will be used.
Parameters:
out the output stream to which to write.
Returns:
a reference to the given output stream.

Implements regina::NManifold.


Member Data Documentation

const int regina::NSimpleSurfaceBundle::S2xS1 [static]

Represents the orientable 2-sphere bundle over the circle.

const int regina::NSimpleSurfaceBundle::S2xS1_TWISTED [static]

Represents the non-orientable twisted 2-sphere bundle over the circle.

const int regina::NSimpleSurfaceBundle::RP2xS1 [static]

Represents the projective plane bundle over the circle.


The documentation for this class was generated from the following file:
Copyright © 1999-2006, Ben Burton
This software is released under the GNU General Public License.
For further information, or to submit a bug or other problem, please contact Ben Burton (bab@debian.org).