#include <nsnappedtwosphere.h>
Inheritance diagram for regina::NSnappedTwoSphere:
Public Member Functions | |
virtual | ~NSnappedTwoSphere () |
Destroys this snapped 2-sphere; note that the corresponding snapped 3-balls will also be destroyed. | |
NSnappedTwoSphere * | clone () const |
Returns a newly created clone of this structure. | |
const NSnappedBall * | getSnappedBall (int index) const |
Returns one of the two snapped 3-balls whose equators are joined. | |
void | reduceTriangulation () const |
Cuts along the 2-sphere and fills the two new boundary components with 3-balls. | |
NTriangulation * | getReducedTriangulation (const NTriangulation *original) const |
Makes a clone of this triangulation and reduces the clone as described by reduceTriangulation(). | |
void | writeTextShort (std::ostream &out) const |
Writes this object in short text format to the given output stream. | |
Static Public Member Functions | |
static NSnappedTwoSphere * | formsSnappedTwoSphere (NTetrahedron *tet1, NTetrahedron *tet2) |
Determines if the two given tetrahedra together form a snapped 2-sphere. | |
static NSnappedTwoSphere * | formsSnappedTwoSphere (NSnappedBall *ball1, NSnappedBall *ball2) |
Determines if the two given snapped 3-balls together form a snapped 2-sphere. |
This occurs when two snapped 3-balls are glued together at their equators (note that this gluing does not have to extend to faces). Each 3-ball has a central disc (bounded by the 3-ball's equator and bisecting its internal edge), and these two discs together form an embedded 2-sphere in the triangulation.
This 2-sphere can be cut along and the two resulting 2-sphere boundaries filled in with 3-balls, and the resulting triangulation has the same number of tetrahedra as the original. If the snapped 2-sphere was separating, the resulting triangulation will contain the two terms of the corresponding connected sum.
regina::NSnappedTwoSphere::~NSnappedTwoSphere | ( | ) | [inline, virtual] |
Destroys this snapped 2-sphere; note that the corresponding snapped 3-balls will also be destroyed.
NSnappedTwoSphere* regina::NSnappedTwoSphere::clone | ( | ) | const |
Returns a newly created clone of this structure.
static NSnappedTwoSphere* regina::NSnappedTwoSphere::formsSnappedTwoSphere | ( | NSnappedBall * | ball1, | |
NSnappedBall * | ball2 | |||
) | [static] |
Determines if the two given snapped 3-balls together form a snapped 2-sphere.
If this is the case, the snapped 3-balls stored in the structure returned will be clones of the original 3-balls, not the original 3-balls themselves.
ball1 | the first snapped 3-ball to examine. | |
ball2 | the second snapped 3-ball to examine. |
null
if the given snapped 3-balls do not form a snapped 2-sphere. static NSnappedTwoSphere* regina::NSnappedTwoSphere::formsSnappedTwoSphere | ( | NTetrahedron * | tet1, | |
NTetrahedron * | tet2 | |||
) | [static] |
Determines if the two given tetrahedra together form a snapped 2-sphere.
tet1 | the first tetrahedron to examine. | |
tet2 | the second tetrahedron to examine. |
null
if the given tetrahedra do not form a snapped 2-sphere. NTriangulation* regina::NSnappedTwoSphere::getReducedTriangulation | ( | const NTriangulation * | original | ) | const |
Makes a clone of this triangulation and reduces the clone as described by reduceTriangulation().
The original triangulation containing this 2-sphere will not be modified. The clone will have no parent packet.
original | the triangulation in which this 2-sphere occurs. |
const NSnappedBall * regina::NSnappedTwoSphere::getSnappedBall | ( | int | index | ) | const [inline] |
Returns one of the two snapped 3-balls whose equators are joined.
index | specifies which of the two 3-balls to return; this must be either 0 or 1. |
void regina::NSnappedTwoSphere::reduceTriangulation | ( | ) | const |
Cuts along the 2-sphere and fills the two new boundary components with 3-balls.
The number of tetrahedra in the triangulation will not change.
Note that if this 2-sphere is separating, this routine will effectively split the corresponding connected sum into its two original terms.
void regina::NSnappedTwoSphere::writeTextShort | ( | std::ostream & | out | ) | const [inline, 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.
out | the output stream to which to write. |
Implements regina::ShareableObject.