Name

tri — A triangulation packet

Synopsis

Content Model
tri ::= (simplex*,
         fundgroup?, H1?, H1Bdry?, H1Rel?, H2?,
         splitsfce?, zeroeff?,
         threesphere?, handlebody?, txi?,
         irreducible?, compressingdisc?, haken?,
         tag*,
         (container|textdata|script|attachment|
          tri|link|snappeadata|
          angles|surfaces|hypersurfaces|
          filtercomb|filterprop|filtertrivial|
          anon|anonref)*)
NameType
Attributes
dimNUMBER (required)
permCDATA (required)
sizeNUMBER (required)
idCDATA
labelCDATA

Added in Regina 7.0

Description

This represents a triangulation packet, one of the many types of packet that together form the packet tree that a user sees when they open a Regina data file.

A triangulation packet stores a d-dimensional triangulation (typically of a d-manifold), for any dimension 2 ≤ d ≤ 15.

The total number of top-dimensional simplices in the triangulation (e.g., the total number of tetrahedra in the case d = 3) must be specified by the size attribute. The individual simplices are numbered 0, 1, 2, etc., and the gluings between them are described by the corresponding child simplex elements. There must be precisely size child simplex elements in total.

There are additional optional child elements (e.g., fundgroup, H1, etc.) that can be used to store known properties of this triangulation. Some of these are only used in particular dimensions, as noted in the Children section below.

There are several child XML elements that are common to all packet types. The tag elements represent an arbitrary set of string “tags” that users can attach to a packet to help organise their data. The remaining child elements list all of Regina's packet types (container, textdata, etc.), and these represent the immediate children of this packet in the packet tree.

Parents

The following elements can contain any packet element (including this): angles, anon, anonref, attachment, container, filtercomb, filterprop, filtertrivial, hypersurfaces, link, regina, script, snappeadata, surfaces, textdata, tri. This list includes all packet types, as well as the top-level element regina.

Children

The following elements occur in tri, and are used for triangulations in all dimensions: fundgroup, H1, simplex.

For triangulations in dimensions 3 and 4, the following child element may also occur: H2.

In addition, for triangulations in dimension 3, there are many more optional child elements: compressingdisc, H1Bdry, H1Rel, haken, handlebody, irreducible, splitsfce, threesphere, txi, zeroeff.

The following children can occur in all packet elements: angles, anon, anonref, attachment, container, filtercomb, filterprop, filtertrivial, hypersurfaces, link, script, snappeadata, surfaces, tag, textdata, tri. This list includes all packet types, as well as the tag element for tagging individual packets.

Attributes

The following attributes are specific to triangulation packets:

dim

Indicates the dimension of the triangulation. This must be an integer between 2 and 15 inclusive.

perm

Indicates how gluing permutations are encoded within each simplex element. Possible values are index (where permutations are denoted by indices into the symmetric group Sdim+1) or imagepack (where permutations are denoted by “image packs”). See the simplex element for more information on each of these encodings.

size

Indicates the total number of top-dimensional simplices in the triangulation (e.g., the total number of tetrahedra in the case dim = 3). This must be a non-negative integer, and must be equal to the number of child simplex elements.

The following attributes are common to all packet types:

id

A unique identifier for this packet. Packets are not required to have IDs, but when they are present they must be distinct (i.e., no packets in the same file may share the same ID). IDs do not need to be human-readable, must not contain leading or trailing whitespace, and must not be empty strings. Currently, IDs are built from base 64 hashes of the underlying C++ pointers.

The purpose of these packet IDs is to allow other packets to reference this packet (for instance, so that a script packet can store references to its variables).

IDs are not required to stay the same across subsequent loads and saves of the same file. In other words, if you load a file and save it again, the packet IDs are allowed to change.

label

The name given by the user to this particular packet within the overall packet tree.

Example

The following XML snippet represents a three-tetrahedron triangulation of the 3-manifold RP2 × S1, along with some pre-computed homology groups.

<tri dim="3" size="3" perm="index" label="RP² x S¹">
  <simplex> 1 0 1 0 2 11 2 2 </simplex>
  <simplex> 0 0 0 0 2 21 2 12 </simplex>
  <simplex> 0 13 0 4 1 21 1 8 </simplex>
  <H1><abeliangroup rank="1"> 2 </abeliangroup></H1>
  <H1Rel><abeliangroup rank="1"> 2 </abeliangroup></H1Rel>
  <H1Bdry><abeliangroup rank="0"> </abeliangroup></H1Bdry>
  <H2><abeliangroup rank="0"> 2 </abeliangroup></H2>
</tri>