Regina Calculation Engine
Public Member Functions | Static Public Attributes | Friends
regina::NVertex Class Reference

Represents a vertex in the skeleton of a triangulation. More...

#include <triangulation/nvertex.h>

Inheritance diagram for regina::NVertex:
regina::ShareableObject regina::NMarkedElement regina::boost::noncopyable

List of all members.

Public Member Functions

virtual ~NVertex ()
 Default destructor.
const std::vector
< NVertexEmbedding > & 
getEmbeddings () const
 Returns the list of descriptors detailing how this vertex forms a part of various tetrahedra in the triangulation.
unsigned long getNumberOfEmbeddings () const
 Returns the number of descriptors in the list returned by getEmbeddings().
const NVertexEmbeddinggetEmbedding (unsigned long index) const
 Returns the requested descriptor from the list returned by getEmbeddings().
NComponentgetComponent () const
 Returns the component of the triangulation to which this vertex belongs.
NBoundaryComponentgetBoundaryComponent () const
 Returns the boundary component of the triangulation to which this vertex belongs.
unsigned long getDegree () const
 Returns the degree of this vertex.
int getLink () const
 Returns a description of the link of the vertex.
bool isLinkClosed () const
 Determines if the link of this vertex is closed.
bool isIdeal () const
 Determines if this vertex is an ideal vertex.
bool isBoundary () const
 Determines if this vertex lies on the boundary of the triangulation.
bool isStandard () const
 Determines if this vertex is standard.
bool isLinkOrientable () const
 Determines if the vertex link is orientable.
long getLinkEulerCharacteristic () const
 Returns the Euler characteristic of the vertex link.
void writeTextShort (std::ostream &out) const
 Writes this object in short text format to the given output stream.
- Public Member Functions inherited from regina::ShareableObject
 ShareableObject ()
 Default constructor that does nothing.
virtual ~ShareableObject ()
 Default destructor that does nothing.
virtual void writeTextLong (std::ostream &out) const
 Writes this object in long text format to the given output stream.
std::string toString () const
 Returns the output from writeTextShort() as a string.
std::string toStringLong () const
 Returns the output from writeTextLong() as a string.
- Public Member Functions inherited from regina::NMarkedElement
long markedIndex () const
 Returns the index at which this object is stored in an NMarkedVector.

Static Public Attributes

static const int SPHERE
 Specifies a vertex link that is a sphere.
static const int DISC
 Specifies a vertex link that is a disc.
static const int TORUS
 Specifies a vertex link that is a torus.
static const int KLEIN_BOTTLE
 Specifies a vertex link that is a Klein bottle.
static const int NON_STANDARD_CUSP
 Specifies a vertex link that is closed and is not a sphere, torus or Klein bottle.
static const int NON_STANDARD_BDRY
 Specifies a vertex link that has boundary and is not a disc.

Friends

class NTriangulation
 Allow access to private members.

Detailed Description

Represents a vertex in the skeleton of a triangulation.

Vertices are highly temporary; once a triangulation changes, all its vertex objects will be deleted and new ones will be created.

Test:
Included in the test suite.

Constructor & Destructor Documentation

regina::NVertex::~NVertex ( )
inlinevirtual

Default destructor.


Member Function Documentation

NBoundaryComponent * regina::NVertex::getBoundaryComponent ( ) const
inline

Returns the boundary component of the triangulation to which this vertex belongs.

See the note in the NBoundaryComponent overview regarding what happens if the vertex link is a multiply punctured surface. Note that this makes the vertex non-standard and the triangulation invalid.

An ideal vertex will have its own individual boundary component to which it belongs.

Returns:
the boundary component containing this vertex, or 0 if this vertex is not on the boundary of the triangulation as determined by isBoundary().
NComponent * regina::NVertex::getComponent ( ) const
inline

Returns the component of the triangulation to which this vertex belongs.

Returns:
the component containing this vertex.
unsigned long regina::NVertex::getDegree ( ) const
inline

Returns the degree of this vertex.

Note that this is identical to getNumberOfEmbeddings().

Returns:
the degree of this vertex.
const NVertexEmbedding & regina::NVertex::getEmbedding ( unsigned long  index) const
inline

Returns the requested descriptor from the list returned by getEmbeddings().

Parameters:
indexthe index of the requested descriptor. This should be between 0 and getNumberOfEmbeddings()-1 inclusive.
Returns:
the requested embedding descriptor.
const std::vector< NVertexEmbedding > & regina::NVertex::getEmbeddings ( ) const
inline

Returns the list of descriptors detailing how this vertex forms a part of various tetrahedra in the triangulation.

Note that if this vertex represents multiple vertices of a particular tetrahedron, then there will be multiple embedding descriptors in the list regarding that tetrahedron.

Python:
This routine returns a python list.
Returns:
the list of embedding descriptors.
See also:
NVertexEmbedding
int regina::NVertex::getLink ( ) const
inline

Returns a description of the link of the vertex.

Returns:
one of the predefined link constants in NVertex.
long regina::NVertex::getLinkEulerCharacteristic ( ) const
inline

Returns the Euler characteristic of the vertex link.

Returns:
the Euler characteristic of the vertex link.
unsigned long regina::NVertex::getNumberOfEmbeddings ( ) const
inline

Returns the number of descriptors in the list returned by getEmbeddings().

Note that this is identical to getDegree().

Returns:
the number of embedding descriptors.
bool regina::NVertex::isBoundary ( ) const
inline

Determines if this vertex lies on the boundary of the triangulation.

Ideal vertices are included as being on the boundary. In fact, the only vertices not considered as on the boundary are those whose links are spheres.

Returns:
true if and only if this vertex lies on the boundary.
See also:
isIdeal()
bool regina::NVertex::isIdeal ( ) const
inline

Determines if this vertex is an ideal vertex.

This requires the vertex link to be closed and not a 2-sphere.

Returns:
true if and only if this is an ideal vertex.
bool regina::NVertex::isLinkClosed ( ) const
inline

Determines if the link of this vertex is closed.

Returns:
true if and only if the link of this vertex is closed.
bool regina::NVertex::isLinkOrientable ( ) const
inline

Determines if the vertex link is orientable.

Returns:
true if and only if the vertex link is orientable.
bool regina::NVertex::isStandard ( ) const
inline

Determines if this vertex is standard.

This requires the vertex link to be a sphere, disc, torus or Klein bottle.

Returns:
true if and only if this vertex is standard.
void regina::NVertex::writeTextShort ( std::ostream &  out) const
virtual

Writes this object in short text format to the given output stream.

The output should fit on a single line and no newline should be written.

Python:
The parameter out does not exist; standard output will be used.
Parameters:
outthe output stream to which to write.

Implements regina::ShareableObject.


Friends And Related Function Documentation

friend class NTriangulation
friend

Allow access to private members.


Member Data Documentation

const int regina::NVertex::DISC
static

Specifies a vertex link that is a disc.

const int regina::NVertex::KLEIN_BOTTLE
static

Specifies a vertex link that is a Klein bottle.

const int regina::NVertex::NON_STANDARD_BDRY
static

Specifies a vertex link that has boundary and is not a disc.

const int regina::NVertex::NON_STANDARD_CUSP
static

Specifies a vertex link that is closed and is not a sphere, torus or Klein bottle.

const int regina::NVertex::SPHERE
static

Specifies a vertex link that is a sphere.

const int regina::NVertex::TORUS
static

Specifies a vertex link that is a torus.


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

Copyright © 1999-2012, The Regina development team
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).