Name

anon — A collection of anonymous packets

Description

This element holds anonymous packets. These are packets that can be included in a Regina data file, but will not appear in the packet tree when the user opens the file, and are not guaranteed to be saved if/when the user saves the file again.

Anonymous packets were introduced to support normal surface lists, normal hypersurface lists and angle structure lists whose underlying triangulations have changed or been deleted, and which therefore need to carry around private “snapshots” of these triangulations as they used to look at some earlier point in time.

When reading a data file, Regina will parse and construct any anonymous packets that it finds, and will give later packets the opportunity to use and/or make copies of this data if they choose. Once the XML parsing is complete, any anonymous packets that were read will be destroyed immediately, before the final packet tree is returned to the user.

More precisely, a packet P will be given the opportunity to use and/or copy an anonymous packet A if and only if P appears after A in a pre-order depth-first traversal of the full packet tree. Typically P would refer to A using its id attribute.

Inside an anon element, the packet tree structure is irrelevant. All parent/child relationships are ignored, and all anonymous packets will be stored together in a central “anonymous pool”. In particular, an anon element that appears as a descendant of some other anon element has no additional effect. Likewise, any tag elements that appear inside an anon element will simply be ignored.

An anonymous packet can be “de-anonymised” later in the XML data file using an anonref element, which has the effect of moving an anonymous packet into the “real” packet tree.

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