hypersurfaces |
Prev | Current Data File Format | Next |
Name
hypersurfaces — A normal hypersurface list packet
Synopsis
Content Model | |
hypersurfaces ::= ( | |
Attributes | |
Name | Type |
algorithm | NUMBER (required) |
coords | NUMBER (required) |
tri | CDATA (required) |
type | NUMBER (required) |
id | CDATA |
label | CDATA |
Added in Regina 7.0
Description
This represents a normal hypersurface list 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 normal hypersurface list stores a list of normal hypersurfaces in a particular 4-manifold triangulation. This list will often contain the vertex hypersurfaces whose convex span is the set of all normal hypersurfaces in the triangulation that satisfy certain constraints, though other lists (such as fundamental hypersurfaces, or other customised lists) can be stored also.
Since Regina 7.0, a normal hypersurface list no longer needs to
be a child packet of its underlying triangulation.
Instead, the triangulation is denoted by the tri
attribute. This must be the ID of a 4-dimensional triangulation packet
that appears before this list in the packet tree,
with respect to a pre-order depth-first traversal
(i.e., the triangulation must appear before this list in the XML
data file). The triangulation may be an anonymous packet (see anon
).
The individual normal hypersurfaces in this list are contained in the
child hypersurface
elements.
Since Regina 7.0, the parameters of the normal hypersurface
enumeration that created this list are stored in the attributes; there is no
longer a child params
element.
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 hypersurfaces
,
and are specific to the normal hypersurface list packet type:
hypersurface
.
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 normal hypersurface lists:
algorithm
Specifies the algorithm that was used to enumerate these normal hypersurfaces.
This must be an integer, formed as a bitwise OR combination of constants from the
HyperAlgFlags
enumeration in Regina's calculation engine.An example of such an integer might be 32, which is the
HyperAlgFlags
constantHS_VERTEX_DD
, indicating that the double description method was used.coords
Specifies which coordinate system was used in the normal hypersurface enumeration.
This must be a non-negative integer that matches one of the constants from the
HyperCoords
enumeration in Regina's calculation engine.An example of such an integer might be 1, which is the constant
HS_PRISM
that represents prism coordinates for normal hypersurfaces.tri
The ID of the triangulation in which these normal hypersurfaces live. This must match the
id
attribute of a 4-dimensional triangulation that appears before this list in a pre-order depth-first traversal of the full packet tree.type
Specifies exactly which normal hypersurfaces this list contains. In particular, this flag indicates whether the list contains all vertex hypersurfaces, all fundamental hypersurfaces, or some other customised list. It also indicates whether the list is restricted to properly embedded hypersurfaces.
This must be an integer, formed as a bitwise OR combination of constants from the
HyperListFlags
enumeration in Regina's calculation engine.An example of such an integer might be 5, which combines the
HyperListFlags
constantsHS_EMBEDDED_ONLY
(1) andHS_VERTEX
(4).
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.
Prev | Contents | Next |
hypersurface | Up | irreducible |