Regina 7.0 Calculation Engine
Classes | Enumerations | Functions
Knots and Links

Knots and links in the 3-sphere. More...

Classes

class  regina::ExampleLink
 This class offers routines for constructing ready-made examples of knots and links. More...
 
class  regina::StrandRef
 A reference to one of the two strands of a link that pass each other at a crossing. More...
 
class  regina::Crossing
 Represents a single crossing in a link diagram. More...
 
class  regina::Link
 Represents a directed knot or link in the 3-sphere. More...
 
class  regina::ModelLinkGraphArc
 A reference to an outgoing edge from a node of a model graph for a knot or link. More...
 
class  regina::ModelLinkGraphNode
 Represents a single node in a model graph for a knot or link. More...
 
class  regina::ModelLinkGraph
 Represents an undirected 4-valent planar graph with a specific planar embedding. More...
 
class  regina::ModelLinkGraphCells
 Describes the cellular decomposition of the sphere that is induced by a given planar 4-valent graph. More...
 
class  regina::Tangle
 Represents a 2-tangle in the 3-ball. More...
 

Enumerations

enum  regina::Framing { regina::FRAMING_SEIFERT = 1 , regina::FRAMING_BLACKBOARD = 2 }
 Indicates one of the standard framings of a knot or link. More...
 

Functions

std::ostream & regina::operator<< (std::ostream &out, const StrandRef &s)
 Writes a depiction of the given strand reference to the given output stream. More...
 
void regina::swap (Link &lhs, Link &rhs)
 Swaps the contents of the two given links. More...
 
std::ostream & regina::operator<< (std::ostream &out, const ModelLinkGraphArc &a)
 Writes a depiction of the given arc reference to the given output stream. More...
 
void regina::swap (ModelLinkGraph &lhs, ModelLinkGraph &rhs) noexcept
 Swaps the contents of the two given graphs. More...
 
void regina::swap (Tangle &lhs, Tangle &rhs) noexcept
 Swaps the contents of the two given tangles. More...
 

Detailed Description

Knots and links in the 3-sphere.

Enumeration Type Documentation

◆ Framing

Indicates one of the standard framings of a knot or link.

Here a framing refers to a choice of normal vector field along the knot or link. Equivalently, a framing refers to a choice of longitude on the torus bounding each component of the link.

Enumerator
FRAMING_SEIFERT 

Indicates the Seifert framing, which is defined algebraically and is independent of the knot/link projection.

For each component of the link, draw a Seifert surface (i.e., an orientable surface embedded in the 3-sphere that is bounded by the corresponding knot). The Seifert framing is the vector field that points into the corresponding surface.

Equivalently, for each component of the link, the Seifert framing chooses the unique longitude for the corresponding knot that is trivial in the homology of the knot complement.

FRAMING_BLACKBOARD 

Indicates the blackboard framing, which is specific to the knot/link projection.

For the blackboard framing, the normal vector field stays within the projection plane. Equivalently, the blackboard framing chooses longitudes whose projections do not intersect the original link diagram.

Function Documentation

◆ operator<<() [1/2]

std::ostream & regina::operator<< ( std::ostream &  out,
const ModelLinkGraphArc a 
)
inline

Writes a depiction of the given arc reference to the given output stream.

Parameters
outthe output stream to which to write.
athe arc reference to write.
Returns
a reference to the given output stream.

◆ operator<<() [2/2]

std::ostream & regina::operator<< ( std::ostream &  out,
const StrandRef s 
)
inline

Writes a depiction of the given strand reference to the given output stream.

The reference will be written in the form ^n or _n, denoting the upper or lower strand at crossing n respectively. For example, the upper strand of crossing 7 will be written as ^7.

Parameters
outthe output stream to which to write.
sthe reference to write.
Returns
a reference to the given output stream.

◆ swap() [1/3]

void regina::swap ( Link lhs,
Link rhs 
)
inline

Swaps the contents of the two given links.

This global routine simply calls Link::swap(); it is provided so that Link meets the C++ Swappable requirements.

See Link::swap() for more details.

Note
This swap function is not marked noexcept, since it fires change events on both links which may in turn call arbitrary code via any registered packet listeners.
Parameters
lhsthe link whose contents should be swapped with rhs.
rhsthe link whose contents should be swapped with lhs.

◆ swap() [2/3]

void regina::swap ( ModelLinkGraph lhs,
ModelLinkGraph rhs 
)
inlinenoexcept

Swaps the contents of the two given graphs.

This global routine simply calls ModelLinkGraph::swap(); it is provided so that ModelLinkGraph meets the C++ Swappable requirements.

See ModelLinkGraph::swap() for more details.

Parameters
lhsthe graph whose contents should be swapped with rhs.
rhsthe graph whose contents should be swapped with lhs.

◆ swap() [3/3]

void regina::swap ( Tangle lhs,
Tangle rhs 
)
inlinenoexcept

Swaps the contents of the two given tangles.

This global routine simply calls Tangle::swap(); it is provided so that Tangle meets the C++ Swappable requirements.

See Tangle::swap() for more details.

Parameters
lhsthe tangle whose contents should be swapped with rhs.
rhsthe tangle whose contents should be swapped with lhs.

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