Regina 7.0 Calculation Engine
Classes | Functions
3-Manifold Triangulations

Details for implementing triangulations of 3-manifolds. More...

Classes

class  regina::Component< 3 >
 Represents a connected component of a 3-manifold triangulation. More...
 
class  regina::Face< 3, 3 >
 Represents a tetrahedron within a 3-manifold triangulation. More...
 
class  regina::Face< 3, 2 >
 Represents a triangle in the skeleton of a 3-manifold triangulation. More...
 
class  regina::Triangulation< 3 >
 Represents a 3-dimensional triangulation, typically of a 3-manifold. More...
 
class  regina::Face< 3, 0 >
 Represents a vertex in the skeleton of a 3-manifold triangulation. More...
 

Functions

Triangulation< 3 > & regina::static_triangulation3_cast (Packet &p)
 Casts a reference from Packet to Triangulation<3>, allowing for the packet to hold either a Triangulation<3> or a SnapPeaTriangulation. More...
 
const Triangulation< 3 > & regina::static_triangulation3_cast (const Packet &p)
 Casts a const reference from Packet to Triangulation<3>, allowing for the packet to hold either a Triangulation<3> or a SnapPeaTriangulation. More...
 

Detailed Description

Details for implementing triangulations of 3-manifolds.

Function Documentation

◆ static_triangulation3_cast() [1/2]

const Triangulation< 3 > & regina::static_triangulation3_cast ( const Packet p)

Casts a const reference from Packet to Triangulation<3>, allowing for the packet to hold either a Triangulation<3> or a SnapPeaTriangulation.

The behaviour of this routine is analogous to static_cast<const Triangulation<3>&>() and regina::static_packet_cast<Triangulation<3>>(). It is provided because these other routines cannot simultaneously support packets that hold a Triangulation<3> and packets that hold a SnapPeaTriangulation - these two cases use separate (and unrelated) paths through the class hierarchy to get from Packet to Triangulation<3>.

In particular, attempting to use regina::static_packet_cast<Triangulation<3>> with a packet holding a SnapPea triangulation is not allowed, and will result in undefined behaviour. In contrast, calling regina::static_triangulation3_cast on such a packet is allowed and will return the expected Triangulation<3> reference.

Python
Not present, since casting is unnecessary in Python.
Parameters
pa reference, presented as a packet.
Returns
the same reference, presented using the type Held.

◆ static_triangulation3_cast() [2/2]

Triangulation< 3 > & regina::static_triangulation3_cast ( Packet p)

Casts a reference from Packet to Triangulation<3>, allowing for the packet to hold either a Triangulation<3> or a SnapPeaTriangulation.

The behaviour of this routine is analogous to static_cast<Triangulation<3&>>() and regina::static_packet_cast<Triangulation<3>>(). It is provided because these other routines cannot simultaneously support packets that hold a Triangulation<3> and packets that hold a SnapPeaTriangulation - these two cases use separate (and unrelated) paths through the class hierarchy to get from Packet to Triangulation<3>.

In particular, attempting to use regina::static_packet_cast<Triangulation<3>> with a packet holding a SnapPea triangulation is not allowed, and will result in undefined behaviour. In contrast, calling regina::static_triangulation3_cast on such a packet is allowed and will return the expected Triangulation<3> reference.

Python
Not present, since casting is unnecessary in Python.
Parameters
pa reference, presented as a packet.
Returns
the same reference, presented using the type Held.

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).