Regina 7.3 Calculation Engine
Public Member Functions | Friends | List of all members
regina::Cusp Class Reference

Used to return information about a single cusp of a SnapPea triangulation. More...

#include <snappea/snappeatriangulation.h>

Inheritance diagram for regina::Cusp:
regina::ShortOutput< Cusp > regina::Output< Cusp, false >

Public Member Functions

 Cusp (const Cusp &)=default
 Creates a new copy of the given cusp information. More...
 
Cuspoperator= (const Cusp &)=default
 Sets this to be a copy of the given cusp information. More...
 
Vertex< 3 > * vertex () const
 Returns the corresponding vertex of the Regina triangulation (i.e., of the Triangulation<3> structure that is inherited by SnapPeaTriangulation). More...
 
bool complete () const
 Returns whether this cusp is complete. More...
 
int m () const
 Returns the first (meridian) filling coefficient on this cusp, or 0 if this cusp is complete. More...
 
int l () const
 Returns the second (longitude) filling coefficient on this cusp, or 0 if this cusp is complete. More...
 
bool operator== (const Cusp &other) const
 Determines whether this and the given object hold the same cusp information. More...
 
bool operator!= (const Cusp &other) const
 Determines if this and the given object do not hold the same cusp information. More...
 
void writeTextShort (std::ostream &out) const
 Writes a short text representation of this object to the given output stream. More...
 
void writeTextLong (std::ostream &out) const
 A default implementation for detailed output. More...
 
std::string str () const
 Returns a short text representation of this object. More...
 
std::string utf8 () const
 Returns a short text representation of this object using unicode characters. More...
 
std::string detail () const
 Returns a detailed text representation of this object. More...
 

Friends

class SnapPeaTriangulation
 Allow access to private members. More...
 

Detailed Description

Used to return information about a single cusp of a SnapPea triangulation.

See SnapPeaTriangulation::cusp() and SnapPeaTriangulation::cusps() for further details.

Cusp objects essentially package together information about a cusp as a standalone read-only object. Unlike Triangulation<3>::Vertex and other skeletal objects, a Cusp object does not uniquely define a cusp (if you need a unique identifier, use Cusp::vertex() for this). You can make many copies of the same Cusp object, and each copy will contain the same information and point to the same vertex of the underlying triangulation.

Cusp objects should be considered temporary only; you should not hold onto references or pointers to them. If you need to hold on to information about a cusp, you can simply copy the Cusp object by value (an operation that is both cheap and safe).

Cusp objects are small enough to pass by value and swap with std::swap(), with no need for any specialised move operations or swap functions.

Constructor & Destructor Documentation

◆ Cusp()

regina::Cusp::Cusp ( const Cusp )
default

Creates a new copy of the given cusp information.

Member Function Documentation

◆ complete()

bool regina::Cusp::complete ( ) const
inline

Returns whether this cusp is complete.

SnapPy
In SnapPy, this field corresponds to querying Manifold.cusp_info("is_complete")[cusp_number].
Returns
true if this cusp is complete, or false if it is filled.

◆ detail()

std::string regina::Output< Cusp , supportsUtf8 >::detail ( ) const
inherited

Returns a detailed text representation of this object.

This text may span many lines, and should provide the user with all the information they could want. It should be human-readable, should not contain extremely long lines (which cause problems for users reading the output in a terminal), and should end with a final newline. There are no restrictions on the underlying character set.

Returns
a detailed text representation of this object.

◆ l()

int regina::Cusp::l ( ) const
inline

Returns the second (longitude) filling coefficient on this cusp, or 0 if this cusp is complete.

SnapPy
In SnapPy, this field corresponds to querying Manifold.cusp_info("filling")[cusp_number][1].
Returns
the second filling coefficient.

◆ m()

int regina::Cusp::m ( ) const
inline

Returns the first (meridian) filling coefficient on this cusp, or 0 if this cusp is complete.

SnapPy
In SnapPy, this field corresponds to querying Manifold.cusp_info("filling")[cusp_number][0].
Returns
the first filling coefficient.

◆ operator!=()

bool regina::Cusp::operator!= ( const Cusp other) const
inline

Determines if this and the given object do not hold the same cusp information.

Two Cusp objects are considered equal if they refer to the same vertex number of the underlying triangulation, and they have the same filling coefficients. Note that the vertex pointers do not need to be the same (i.e., it is meaningful to compare cusps from different triangulations).

Parameters
otherthe cusp information to compare with this.
Returns
true if and only this and the given object do not hold the same cusp information.

◆ operator=()

Cusp & regina::Cusp::operator= ( const Cusp )
default

Sets this to be a copy of the given cusp information.

Returns
a reference to this object.

◆ operator==()

bool regina::Cusp::operator== ( const Cusp other) const
inline

Determines whether this and the given object hold the same cusp information.

Two Cusp objects are considered equal if they refer to the same vertex number of the underlying triangulation, and they have the same filling coefficients. Note that the vertex pointers do not need to be the same (i.e., it is meaningful to compare cusps from different triangulations).

Parameters
otherthe cusp information to compare with this.
Returns
true if and only this and the given object hold the same cusp information.

◆ str()

std::string regina::Output< Cusp , supportsUtf8 >::str ( ) const
inherited

Returns a short text representation of this object.

This text should be human-readable, should use plain ASCII characters where possible, and should not contain any newlines.

Within these limits, this short text ouptut should be as information-rich as possible, since in most cases this forms the basis for the Python __str__() and __repr__() functions.

Python
The Python "stringification" function __str__() will use precisely this function, and for most classes the Python __repr__() function will incorporate this into its output.
Returns
a short text representation of this object.

◆ utf8()

std::string regina::Output< Cusp , supportsUtf8 >::utf8 ( ) const
inherited

Returns a short text representation of this object using unicode characters.

Like str(), this text should be human-readable, should not contain any newlines, and (within these constraints) should be as information-rich as is reasonable.

Unlike str(), this function may use unicode characters to make the output more pleasant to read. The string that is returned will be encoded in UTF-8.

Returns
a short text representation of this object.

◆ vertex()

Vertex< 3 > * regina::Cusp::vertex ( ) const
inline

Returns the corresponding vertex of the Regina triangulation (i.e., of the Triangulation<3> structure that is inherited by SnapPeaTriangulation).

Note that cusp and vertex indexing might not be in sync; that is, SnapPea's cusp(i) need not correspond to Regina's vertex(i).

This routine can be used to detect if/when cusp numbering and vertex numbering fall out of sync, and to translate between them if/when this happens.

◆ writeTextLong()

void regina::ShortOutput< Cusp , false >::writeTextLong ( std::ostream &  out) const
inlineinherited

A default implementation for detailed output.

This routine simply calls T::writeTextShort() and appends a final newline.

Python
Not present. Instead you can call detail() from the subclass T, which returns this output as a string.
Parameters
outthe output stream to which to write.

◆ writeTextShort()

void regina::Cusp::writeTextShort ( std::ostream &  out) const

Writes a short text representation of this object to the given output stream.

Python
Not present. Use str() instead.
Parameters
outthe output stream to which to write.

Friends And Related Function Documentation

◆ SnapPeaTriangulation

friend class SnapPeaTriangulation
friend

Allow access to private members.


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

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