Regina 7.0 Calculation Engine
|
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... | |
Details for implementing triangulations of 3-manifolds.
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.
p | a reference, presented as a packet. |
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.
p | a reference, presented as a packet. |